Choice is a great thing! Options are a great thing! Sure, ensuring that an application works PERFECTLY on ALL handsets EXACTLY the same is more difficult on Android than the iPhone, but that simply doesn't matter. There is a saying, "Don't let GOOD stand in the way of GOOD ENOUGH". This is very applicable in the case of the fragmentation debate. You can make GOOD ENOUGH applications for Android quite easily and then stamp out the bugs as you go. Not to mention, Google makes it extremely easy to test your app on all the different versions of Android that they have out there. It is simply not that hard.
This has a straight parallel to the Windows vs Mac world. When developing application for Windows do you think that all the Windows developers are out there buying every single PC configuration to test their app? Of course not, that simply isn't practical. It is why Mac systems have always had a more cohesive/"just works" feel to them. (Apple owns the hardware) The end of the day though, Windows systems work just fine for almost everyone out there. It has also led to a much lower cost for computers that you can't get in the Mac universe. This is the same thing that you are seeing with Android. It is good enough and in fact has features that I would hazard a guess gives the iPhone a jealous eye. Android is running on all sorts of different hardware, some with keyboards, some without, some starting at $199, some as low a $0(BOGO deals). All these things end up in a highly tailored product that allows each consumer to make their own choice. The good Android phones will rise to the top and the bad Android phones will fall to the bottom. It's the way business works.
In the end, the consumer doesn't care at all about fragmentation. What the consumer cares about is, "Does the phone do what I need it to do?"
Android delivers what consumers need out of a smartphone platform and it does it well enough that any small fragmentation issue becomes irrelevant.