If I understand you correctly, you are suggesting that both clients should be online while synchronising their history. If we are talking about a protocol that is supposed to work on all kinds of devices, this is a flawed approach: keeping iOS (and, increasingly, Android) applications online would be very inconvenient, and you wouldn't be able to create a decent user experience with such protocol.

I think this can be compared to calls or A/V in that both devices are expected to be actively used while the transfer is happening. I think this should be possible even on aggressive platforms like iOS.