Synchronize directory tree with deduplication?

view story

http://unix.stackexchange.com – I have two Linux servers that have a large amount of data (1TB+) that need to be synchronized over a slow connection (100 KB/s). A lot of the data overlaps, but are in different locations. I would like some sort of rsync / unison tool where I can mirror the servers. It would need to be more intelligent and identify if the file exists at the destination (possibly in another location with the same checksum). If it does, then it moves the file locally on the destination server rather than copying the file from scratch from the source server. (HowTos)