Apple's built-in apps are good enough for most people. For everyone else, there's third party apps.
Ideologically speaking, I don't think Apple is vehemently opposed to allowing users the ability to change their default apps. But here's what would happen if they allowed it.
Every single App Store app that remotely replicates the functionality of a built-in app would hound the user to make that their default app for a certain task. Users who don't know any better will likely accept the prompt, and then their default app changes. If the app turns out to be buggy, insufficient, breaks due to API changes in a system update, or is otherwise lackluster, the user is stuck with a poor experience. Repeat this process over several apps such as browsers, messaging apps, camera apps, phone apps, etc, and it's easy to see how users could have a very troublesome experience with their iPhone or iPad. "But it's the apps causing problems, not the iPhone or iPad itself!", you say. And those of us browsing MacRumors understand that. But many users will unknowingly blame Apple for their issues, which negatively impacts customer satisfaction.
Maybe Apple could prohibit developers from prompting users to change their default apps and require the users to manually make the change through the Settings app. Either way, this is a can of worms that Apple obviously doesn't want to open right now.