If you keep the data on client side for longer than trivial amount of time, wouldn't you have to deal with conflict resolution? This could be a big problem for many use cases.
Yes, it is incredibly hard. But on the other hand, the problem of clients losing connection does not go away just because syncing is hard. If you're targeting mobile users, you have the choice between your app being unavailable a lot of the time to a lot of users, or handling syncing.