Pete Harlan [off-list ref] writes:
Rename detection compares new files against deleted files. Copy
detection compares new files against every file in the tree, which is
usually much more costly.
Almost correct. Copy detection usually compares new paths with paths
modified in the same commit. "Every file in the tree" is done only when
you ask to find copies harder.