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.