I suspect the reason is because of the deep system integration of
things like Safari, Mail, Contacts, and the like. Take Mail, for
example, if you could set Sparrow as your default client on iOS
you’d still have to configure Mail because any email sent from
other apps uses the Mail API. Then rely on IMAP to sync those
things up. Inelegant and un-Apple.

That’s a good point about email, but it doesn’t apply to web browsing. There is no “Safari” sheet in iOS. And even for email, the answer is that iOS should allow third-party apps — like Sparrow — to provide their own system-wide sharing sheets.