file.copy: be smart with file changes

The way I read lines 3322 and 3323 is "If the hashes don't match then set 'changed' to False".  Intuitively I would think that if the hashes don't match then the files have been changed, so changed should be 'True'?