I think this goes beyond email.
Similar to the way consumer applications gratuitously became big and slow as processor speed increased and magnetic drive space increased, today we see gratuitous use of increased network bandwidth.
As such if there is even a momentary problem with the remote network, then there will likely be a problem with your application. Many of today's applications have no "offline" mode. Network availability and performance is assumed. Just as back in the 90's it became assumed that the user would have a capable PC. A "slow" PC would not run the latest software.
Many of the applications I write for my own use require very little computing power... I develop on a modestly powered machine and so my programs can run fast from old hardware if need be (i.e., can't afford the latest gear). My approach to "apps" is to periodically download bulk data from the network to keep the application updated, and this usually is scheduled for off-peak times when costs and congestion are lower. Fast network speeds and inexpensive local storage are much appreciated when performing these updates. Not to mention the ease of obtaining an internet globally reachable IP address through today's "cloud hosting" providers.
But I will never understand today's "app" and "web API" trends. Developers of these "apps" utilize the costs of storage and bandwidth a different way. Storage is mainly remote (on someone else's machines, not yours), and hence controlled by some third party, not the user. And most of these applications I see are designed to make constant piecemeal downloads, minute by minute, hour after hour, day after day (even if the same information has been requested before) when they could just as well download all the data they will ever need once, and periodically update it during off-peak periods. As such, if the network is congested or down at runtime, the user must suffer it out. Of course, by making a call to the remote network every time the user takes some action, third parties are able to track everything a user does. That, and the whole app/api approach to development has value to some people perhaps, but surely it is not users. For example, when I watch YouTube videos, I have an application that downloads them first, storing them on RAM disk or inexpensive local media storage and then serving them over a local network. I can then play them using whatever device suits me (or store them on any other device if I wish). I never see any ads. I never use Javascript or Flash. And I never have playback issues (because among other things I have control over my local network). This approach seems like common sense but I feel like I am probably one of the only people out there who does this... and it is not difficult at all to do.
I'm sorry but this doesn't make sense to me. To cache all images you've ever received is sort of antithetical to the whole 'decentralized' nature of email, and the internet in a nutshell. The 'inconvenience' of having to re-download far surpasses the need to store every single trivial little thing on your mail client's cache. A few seconds is worth way more to me than taking up tens of gigs of images on my HD that I will never see again.
One could think of contextual information added to emails, like detecting invoice numbers, intellligent attachments (e.g. recognizing Dropbox links etc.) and so on. I really hope there will be some client like this in the future, if not, we'll build it :)
Also you could open the attachment right inside Google Drive