Better, I think, would be to change cp -n to be compatible with FreeBSD,
where 'cp -n A B' exits with status 1 if B exists. This matches what
FreeBSD 'cp -i A B' does when you say "no". This would be more useful
than what GNU cp does, and the FreeBSD cp -i behavior conforms to POSIX
whereas GNU cp -i (I think accidentally) does not. This would be simpler
than adding a fatal --no-clobber, and would encourage portability a bit.
The reason it's a POSIX conformance issue is that POSIX says exit status
zero means "All files were copied successfully." which "cp -n A B" does
not do when B exists.
Similarly for 'mv' (though FreeBSD mv -i does not conform to POSIX here,
unfortunately).