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.
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.
There HAS to be a better way.