The really bad problem with android is IMHO not one google produces directly (maybe indirectly by not working with the mainstream-kernel; but certainly not willingly): It's phone-vendors patching drivers (and the rest of the system with it) and not merging them upstream.
Now you get hundreds of phones which have no recent android-distribution on them. Right now, the only hope for those affected are things like Cyanogen-mod (A big "thank you" to them, by the way), which in effect provides a community-distribution for certain android-phones.
Forking the kernel (and making their own distribution) actually puts google into the place of responsibility. Things the kernel-community would have done have to be done by google now. And I think google should step up, get all those driver-patches from all the device-manufacturers involved and make an android-distribution which runs on _all_ phones.
The minimum I would expect is for google to provide a kernel (and its sources, in a form which can be compiled with minimum fuss -- with "make menuconfig; make", just as the mainline kernel) which would run on all the devices.