Yes, C# is way better for games because you can write mixed format display buffers, but Java isn't that bad as long as its JITed. It limits you to post 2.2 droids, but if doesn't have 2.2 on it, it probably has the shitest of graphics hardware anyway.
I dont get your other complaints though. Show me a developer guide for a console platform that doesn't have outright lies in it and I'll show you my unicorn.
There is a single cross-platform engine, btw, its called Unity, and if you can live with its constraints, then off you go.
Its not in the platform creators best interest to make it compatible with other platforms. So dont hold your breath for write-once that doesnt suck.