Quando a origem e o destino são remotos, o rsync reclama:
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1156) [Receiver=3.0.7]
Existe um obstáculo técnico insuperável para fazer o rsync fazer isso? Ou é simplesmente um caso de ainda não implementado? Parece relativamente fácil criar um buffer local na memória que medeia a transferência entre dois controles remotos, mantendo hashes e dados.
EDITAR
Como as pessoas estão fazendo algumas sugestões tangenciais, publiquei uma pergunta separada detalhando meu caso de uso específico. Estes são dois separados, realmente, e acho que vale a pena conhecer esses detalhes específicos para o rsync