A possible implementation may be to keep a database of file hashes that way you are able to check the hash of a "deleted" file with a "created" file within x amount of seconds.
file hash foo.bar 1234zyx bar.foo xyz4321
You rename foo.bar to foo1.bar
WinSCP detects that foo.bar was "deleted".
WinSCP calculates foo1.bar hash which remains 1234zyx.
Instead of deleting foo.bar, WinSCP runs mv foo.bar foo1.bar
Delete and create example:
You delete bar.foo
WinSCP detects that bar.foo was deleted.
You make a new text file and name it bar.foo.
WinSCP calculates the hash and notices it is 9876abc.
WinSCP rm bar.foo and scp bar.foo
Unrelated, rsync support would be awesome (but this is already in the tracker :))