Just to add my two bits:
# mkdir test1 test2
# mount -o bind test1 test2
# dd if=/dev/urandom of=test1/file1 count=1k
1024+0 records in
1024+0 records out
524288 bytes (524 kB, 512 KiB) copied, 0.0744947 s, 7.0 MB/s
# ls -l test1/ test2/
test1/:
total 512
-rw-r--r-- 1 root root 524288 Jun 27 10:07 file1
test2/:
total 512
-rw-r--r-- 1 root root 524288 Jun 27 10:07 file1
# cp -v test1/file1 test2
cp: 'test1/file1' and 'test2/file1' are the same file
Seeing that cp can actually detect the same files on a bind mount, it stands to reason that SHFS is returning a different stat attributes than the underlying file, thus fooling cp that the source and destination are different files and safe to clobber in the usual manner. So it's a bug (or as some devs like to call it: limitation) with SHFS.