N900 - so close, but not properly open-sourced
I really wanted to love the N900 - and to develop for it - among other things, it was the first phone that properly ran X11. It was so tantalisingly close. What killed it was a combination of slightly weak hardware (not enough CPU, and a resistive touchscreen), and being incompletely open-source. For example, we needed to write an app that could take and upload photos during an active voice (cellular or IP) call. But the N900 couldn't: the camera application needed a unique lock on the soundcard in order to make the shutter-click noise, and so the call had to be ended. So, easy to fix: just take the open-source distribution, and re-compile without the shutter click effect. BUT, it wasn't all there: if you built the OSS release of the code, you could use the camera, but without the autofocus library! Totally useless.
What Nokia should have done was made Maemo fully open-source, and then promised that all their current generation of phones would be software-updatable to run it. They could even have offered a choice of Windows (officially) and Android (cyanogenmod with official driver support).