One thing that's bothered me about Android for a while is that it's so “fragmented” in that each phone has to have its own unique ROM in order to install the OS. It's a lot of work, and reading about the amount of resources Cyanogen Mod consumes nightly taking care of this illustrates how starkly problematic it can be.
In my opinion this device-centric model has failed. It makes manufacturers responsible for updating the software on their handsets, which takes a large number of man hours and a lot of the time they just can't be bothered doing it anyway. It's leaving us with half-arsed devices (even brand new ones) with long outdated software with potential security vulnerabilities and no chance of a future.
I'm not sure why Android doesn't have a proper installer. An honest to goodness overall works-everywhere package that can pick and choose the required software and drivers for the specific device at install time. We've had it for years with Windows and Linux, but for some reason when it comes to phones, we have to build a particular kernel, a particular set of software, and merge that into a separate ROM image/package for each device which the user then has to choose correctly prior to installation. It's horrible.
Can you imagine how nice it would be to be able to upgrade your phone directly from Google, or Cyanogen just by downloading a universal installer and letting it go? Surely it would save on confusion, bandwidth, compile time, and everything else if Android functioned like a standard Linux distro with real package management and updates.
I really have no idea how this stuff actually works so I'm talking right out of my arse, but I'm assuming there must be something blocking a straightforward network install. I'm just not sure what it could be.