It would be much less of a problem if iOS allowed one to actually replace stock apps with new ones. There's no way to make GMail my default mail app, Chrome my default browser, etc.
Lack of intents is also a serious problem, apps have to specifically support sharing to each source.
A related issue is the lack of system accounts. One has to log in to each app separately, even if many of them use the same account.
Oh, there are a lot of serious problems with iOS. After 3 years on the platform, you start to see that restriction-based badness all over the place. But one shouldn't forget that Apple has built an incredible product with one of the most secure OSs in the world and offers one of the best UI SDKs available. Those facts alone make me want to cut Apple some slack from being such assholes when allowing users to make more low-level decisions.
On the other hand Android allows nonsensical sharing options - there's no way to launch the email app, you have launch a ACTION_SEND_MULTIPLE which will launch Skype, or GMail or Mail or various IM apps.
And why should the developer have to care if I want to send something via Gmail, Skype, or carrier pigeon? As long as Android abstracts the data properly within the Intent, the target app should be irrelevant.
That's true, but the Android approach for accomplishing it is kind of horrible. For one, far too many apps respond to message types that don't really make sense to me. I don't know that this problem is avoidable with freedom, but the lists of available apps for any particular action are often long and very confusing.
I have witnessed this confusion with users, and it really hurts the platform in a lot of cases, IMO.
I can select one to be the default "always", but this doesn't work well either. If there are five applications that can receive a particular intent, my selection of "always" will be lost every single time that ANY of those five applications are updated. So, in practice, my "Always" selection typically only lasts a couple of weeks.
Lack of intents is also a serious problem, apps have to specifically support sharing to each source.
A related issue is the lack of system accounts. One has to log in to each app separately, even if many of them use the same account.