Where Google Went Wrong?
The most important issue is their very own fork of the Linux kernel which no longer can be merged with the upstream kernel. You can read more about this right here.
The second thing is that if you take a look at Android, you will realize pretty quickly that it's not that open after all or as advertised, because of the GPLv2 kernel there's nothing we can do about this; all those smart-phones running modified (binary and proprietary) versions of Android, most of the time won't let you, or be able to run your own version. Again, more about this over here.
Third, the language of choice Java. While Java is a nice language, it's not really known for his speed and low memory requirements which are key elements for a low-power-consumption device like a smart-phone. Of course when Google realized this poor decision, tried to supplement it with the NDK, which is nothing more but a good joke.
It's unacceptable to use a 1Ghz CPU just to be able to run the operating system smoothly because 80% of the CPU time is eaten up by the garbage collector. Obviously this is a major benefit for the Hardware Vendors.
Fragmentation is the result of competition, the market will settle down to a couple of major vendors over the years, that's what happened in the PC scene as well, so anybody who argues against Android by mentioning the fragmentation issue has no idea about what he is talking about.
Where Nokia & Intel Went Right?
Why reinvent the wheel and create a brand new distribution or operating system, when you can cherry-pick the components out there and build something awesome; this is the joy of FLOSS.
God said let there be MeeGo ...
Android fan-boys I'm sorry to disappoint you, but the joint efforts of Intel and Nokia created a far better platform, a true platform based on FLOSS for both smart-phones and net-books known as MeeGo.
Microsoft? Windows 7 Phone Edition?
iWhore? iFloor? Anyone?