I kind of agree with you here. Especially if it's tied to your identification personally. If you have an X@gmail.com or Y@yahoo.com then you're essentially at their mercy. But if you just buy a domain for 10 bucks a year, you can go to your registrar's page and forward mails from catchalls @FNLN.com to your secret X@gmail.com. If you don't like them, download it to outlook and move on to Y@yahoo.com and change the setting at your host record page. That is literally it. Your cost here to switch is the time it takes to download messages to your computer and close the account, sign up for a new account and redirect your alias to the new account. I would ideally automate step 1 as soon as I have opened an account.
You are not 'locked-in' to one provider as your custom domain name becomes an abstraction between your identity to the real world and your storage space/identity to servers. You can change the latter without changing the former. Of course, if you were early enough you could've snagged a Google Apps account, or if you're just entering the scene, you can get a Live Domains account. The only down side is that they don't have catch-alls, so you can have an on the fly email address like hn@FNLN.com for signing up at different websites.