I believe cloning a repository on the same filesystem already makes use of cp --reflink=auto, but it appears that git-annex-{get,copy} use rsync even when both repositories involved in the copy/get are on the same filesystem.
Would it be possible for git-annex-get and git-annex-copy to use cp --reflink=auto when the source and destination repositories are on the same filesystem?
Yes, reflink is used instead of rsync when it's able to determine it's the same filesystem.
Not checking diskreserve for reflink (and also for hard link when annex.hardlink is set) would be nice. But, it's a layering problem since currently the diskreserve check is done separately from the transfer.
The same layering problem also makes downloads from encrypted special remotes not check if there's space for both the encrypted and de-encrypted file content, in cases where both files are present on disk at the same time.
So, there would be multiple benefits to improving the api somehow so more smart diskreserve checks can be done. Although I'd then worry that if remotes were responsible for doing diskreserve checks, they might be buggy and forget to check.