I very recently moved away from a Symbian phone to a Nexus One, partly because (with the exception of MeeGoo, where I didn't find a handset I liked) Android is the closest we currently have to an Open Source environment. I'm throughly impressed with the platform.
It was strange to be paying for applications again after 15 years on Linux! ;-)
I also understand there may be some things like regulatory requirements that make fully open code out of the box a bit difficult in some areas. That's fine, but there are quite a number of areas that shouldn't be affected.
In any case, I encountered a few small bugs - in areas like contact syncing or the mail client, that I thought I could fix. Finding out that the Android code repositories were a few months out of date (and documentation seems to be something that happens to other people) quite put a dent into that.
I could see that, maybe, Google is not actually interested in community contributions; licensing reasons come to mind, or whatever. (Perish the thought that it might be a desire to push people towards paid apps for which Google receives a cut of the transaction.) But, why then make the code fully available at all? What kind of goals are being pursued here?
Sure, for kernel changes, it's a compliance thing. But the whole platform, even code written from scratch, is GPL'ed. I like that, but what's the point? Who benefits from not having a feature-rich calendar or bug-free mailer as part of the base? (Note that the replacement applications I installed for these needs turned out to be free, even without the AdMob crap, so the paid app argument doesn't apply.)
It looks as if Google's position on this platform is somewhat inconsistent, and this creates an expectation mismatch.