If both source and destination are remote, rsync complains:
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1156) [Receiver=3.0.7]
Is there a insurmountable technical obstacle to making rsync do this? Or it's simply a case of it's-not-yet-implemented? It seems relatively easy to create a local buffer in memory that mediates the transfer between two remotes, holding both hashes and data.
Since people are making some tangent suggestions, I've posted a separate question about my particular use case. These are two separate, really, and I think it'd be worthwhile to know these particular details for rsync