The tools to do local mail hosting, IMAP, webmail, etc. all exist. From personal experience, configuring them is a pain in the backside if you're not an experienced sysadmin, which of course includes almost everyone. If that could be overcome, the tech is there.
As for hosting, there are various blog platforms where you have a choice between hosting the code yourself, either on your own machine or on a system included with your personal ISP account, or using a site such as wordpress.com where they do the maintenance and in some cases charge money for extras but the software and data formats are basically the same. I see no reason a similar model couldn't work for e-mail, and if a particular e-mail platform started to take off, there is no reason for ISPs not to support it locally; most of them have always offered some sort of included e-mail mailbox and webmail facility anyway, just not of the calibre of Google Mail and not necessarily easily compatible with other systems.
Basically, I think the problems with a better solution that doesn't leave you at the mercy of a big organisation like Google are genuine but not insurmountable. It's more about usability and standardisation/interoperability than about technical issues.