Couldn't Android change their wakelock interface to satisfy the mainline devs and then distribute some kind of low level backwards-compatibility layer to keep existing apps/drivers from breaking?
I can see why Google wouldn't want to do that also; sort of a collision of interests. Google has a solution that works today, and works fine for Android. But the mainline kernel is trying to maintain a general-purpose API. So the best solution for Google is to make a simple, clean, but special-purpose hack for Android. But the kind of solution mainline would like to have is for someone to factor out a minimal set of general hooks that need to go into the kernel, and then farm out more specialized needs to system-level daemons or userland. But factoring stuff like that is always harder.