I say "does it" as the diversity of hardware did not hurt Microsoft.
This diversity of hardware is nothing like what Microsoft had to deal with. Microsoft had to deal with a multitude of vendors providing devices that resulted in, more or less, some combination consisting of a processing unit, graphics hardware, a screen, a keyboard, a mouse and a sound card. Android is supporting a multitude of devices that may or may not provide one or more of the following: a screen, a capacitive touchscreen, a resistive touchscreen, gsm hardware, gps hardware, 3g connectivity, wlan connectivity, ethernet connectivity, a physical keyboard, no physical buttons at all, any number of physical buttons offering any random functionality, sound hardware capable of reliable voice input, a useless simplistic microphone, lots of internal memory, little internal memory, limited internal memory with optional extension. I could go on.
The point is that if someone tried to put Windows on something, it was a PC. If someone tries to put android on something, it could be anything from a toaster/washing machine/fridge through a headless server through a laptop through any imaginable kind of phone through a tablet pc. Creating a system that performs reasonably well in all those use cases involves more than just writing plenty of drivers for a lot of different hardware.