As a tangent, I feel that a lot of these problems are fundamentally because engineers don't understand how poorly their software performs on unstable networks. Unless you live in a large metropolitan area with a well used underground transit network (in the USA, I suppose NYC would be the only qualifying city... sigh), you'd likely never experience these symptoms on a daily basis.