I think your misunderstanding the scope of POSIX. Posix handles a number of unix type contingencies but its somewhat mute on a lot of I/O. For instance there isn't any standard for Audio. There ALSA, AudioKit (on macs, its a unix too!) , Jack, OSS, FFADO, Pulse, GStreamer and so on.
Then for graphics you've got framebuffers, GL, X windows, Mir and so on.
And pretty much no standards for driving Phone hardware, and no your favorite open source "One day a phone will use this" impleentation doesnt count.
Most of which are somewhat unsuitable and overbloated anyway.
You are right in some sense in that Androids weak point has been traditionally situating drivers in the davlik core making C/C++ coding have to loop back into java to access it , although as time goes on Google has gotten wise to this. I worked on a project maybe 4-5 years ago porting SIP software to the android and it was nearly impossible to get any sensible latency due to the fact there was no native audio driver we could find and the JNI davlik ones where just terrible. Apparently this isn't the case anymore, and newer android doesnt really have this problem.
The problem for App developers though, is that unlike iPhone where apple has tight control over loadout and has made it silky smooth to upgrade (Well compared to reflashing most droid models) Androids tend to end up stuck on the OS revision it shipped with meaning theres a hell of a lot of Android 2.x phones out there that are next to useless for cutting edge development.