My understanding was that the rewrite of libc and the Java (->Dalvik) runtime was partly for GPL reasons, but also partly for technical reasons of performance on systems that are beefier than what the embedded community normally aims for, but not quite up to modern desktop or server systems. (The first Android flagship phone was 528MHz/192MB.)
In addition, I seem to recall legal issues relating to Java Mobile Edition (which was more likely than Standard Edition to perform well on the hardware originally being targeted). And for all the talk of Android fragmentation, one of the things Android has freed us from was the crazy fragmentation in the JME world.
Now, of course, we're getting phones whose hardware is approaching my laptop that's only a couple years old, so many of those technical concerns are moot now.