Assume I want to move a tree in the filesystem, e.g.
/path/to/a
a.txt
b.txt
to another location with rsync (3.0.9 protocol version 30), e.g. with rsync -a --remove-source-files /path/to/a/ /path/to/b/, why does rsync not find out that /path/to/a and /path/to/b are on the save filesystem (rsync is definitely capable of doing that, otherwise there would be no -x argument - the functionality would have to be made available without specification of -x) and uses the mv command which will probably profit from filesystem level manipulation, like changing links and inodes instead of reading, wrting and deleting all files in the tree?
EDIT 1: I experienced reading and writing instead of usage of mv on an ext4 and a reiserfs file system. I'm not looking for inputs like "it simply doesn't, patches welcome", but whether there're some explicit and possibly documented or discussed decisions regarding the design or use cases (like e.g. Gilles' answer).