Ferramentas como o rsync podem gerenciar as operações de comparação e a movimentação de bits para frente e para trás, mas você terá que fornecer sua própria lógica sobre qual versão dos dados é canônica.
Is it best to run file-level or block-level deduplication?
Esta parte da sua pergunta é fácil, pelo menos: você nunca deve precisar se preocupar com o que está acontecendo no nível do bloco.