In my opinion, Android's code organization is a result of questionable architectural constraints applied early in the development of the platform.
> I have had catastrophic failures caused by premature optimization, because locking a tool into a fancy algorithm before you know where the actual bottleneck is is a recipe for disaster.
EDIT: Or, are you saying that it was from the decisions made before Google acquired Android?