There are many mail software to read your emails. IMAP is a really good protocol to interact with your mail box. Unfortunately it is useful only when you are online. There is no option to download mails when you are online, edit them (read, move etc) and upload the changes back to the server, next time when you will be connected to the internet.

Same story for the calendars and news feeds. To make it clear, i'm talking about your mailbox as a main source of information, so you don't rely on any software. Here is example. In the morning, you have downloaded all new information to your IPhone. On a way to your work, you have read some newsfeeds (Google Reader), emails, changed calendar. Because all information and related pages, are already stored in the memory, you can browse them very quikly, without waiting until they are loaded. At your work, you synchonised IPhone with Google Services (Reader, Mail, Calendar). And now you can see updated information on your work PC.

The idea is to create a level, like a proxy between mailbox and mail software. That will be some sort of local server, which will track changes. If there are conflicts it will let the user to choose what to do.

The advantages of that system, is time saving, you don't need to wait until data is received, as all the data will be already stored on a hard disk. It's especially important if you are using mobile devices, as their connection speed is pretty slow even in 3g networks. In addition, this system can be used with any mail, calendar and browser software.

The disadvantage is a bit out dated information, and maybe extra download usage, as system will save all news, will you read them or not. In addition, this type of software will be useless in the future, when the mobile internet will be fast enough, however there are some physical limits.

In the other words, this system will be some sort of cache. It will pre-cache information that you are usually accessing, before you interact with it. Update localy all the changes that you have done to it during interaction, and update the remote server after you have finished.