It just compares the sizes of the source and destination files. It's better than no checks, but I'd hardly call that reliable.
Why not options to add various degrees of reliability checks, such as comparing the source and destination files, or comparing checksums of the files?
One of the stated uses is for copying over networks, where even minimal checks are needed. The flaw may be in using File::Copy as a base, rather than something else which does validation checks for each block copied, or that is network aware. How does this compare to using scp or rsync?