Worse still, there's no flag you can give mv to stop it moving across file systems!
"This is the Unix philosophy:
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface."
So mv is a wrapper around the rename() system call but it also includes cp -r and rm -r whether you want them or not. It wouldn't be so bad if it was a reversible operation but if any of your files were hard links then you're screwed.