Whenever a document changes, the entire body will be re-sent during the replication. (as opposed to just sending a "delta" of the changes in the document body)
Only the latest revision of the document body will be sent however, so if there were 10 changes since the latest replication, it won't send 10 versions of the document body.. only the latest revision.
Attachments are treated slightly differently. Only attachments which have changed will be included with the document during replication. If none have changed, no attachments will be sent.
I agree, sending the delta's would be more efficient, but I'm assuming there are good reasons why it wasn't done that way. I don't think there's any easy way to implement that, since it would require a major change to the protocol.