There's already a modicum of customization built in to iOS 4.2, at least for Text Tones. iPhone 3GS and 3G owners have a choice of six different tones (but in my opinion, Tri-tone is really the only one of these original sounds that's any good), while iPhone 4 owners get another 17 tones (almost all of which are far too long for an SMS and are more suited to a ringtone). You can even assign custom alert tones to different contacts, though you're still restricted to the built-in tones. For New Voicemail, Tri-tone is the only sound you get. New Mail uses the same barely-audible tone as the default sound in Mail for Mac OS X -- but on the Mac, at least you can assign any sound you like. On the iPhone, you're stuck with what Apple gives you.
The iPhone has been on the market for going on four years now, and yet we still haven't been blessed with the ability to use our own sounds for these alert tones. My only question: why the hell not? The iPhone started out not even supporting custom ringtones, but six months later Apple let iPhone users use custom ringtones. Sure, Apple's stopped selling ringtones, but you can still roll your own using multiple methods, including Garageband. Why can't we do the same thing for other alert tones without jailbreaking? I want my iPhone to make the same sound as my Mac when it gets new emails, and I want to be able to use any sound I feel like for SMS alerts so that I can tell the difference between when I've received a new text as opposed to one of my iPhone-using friends using the same very limited subset of sounds.
Other than sheer cussedness, I can't think of a single reason why Apple still doesn't let us do this. It wouldn't even take half an afternoon for Cupertino's crack team of iOS developers to bake this functionality into iOS. The "added complexity" excuse doesn't fly either; at most, we're talking about one additional screen in Settings to set a custom alert tone. iTunes could easily be tweaked to use the same .m4r files that we've been using for custom ringtones all along as custom alerts; in fact, to simplify things Apple could just dump all these sounds into one iTunes folder called "Tones" instead of "Ringtones" and let users assign them as they please.
Apple, just give in and let us have this one thing... this one little thing that other manufacturers' phones have been able to do for years. There are simply no excuses left.