Por man rsync
(minha ênfase):
-R, --relative
Use relative paths. This means that the full path names specified on the command line are sent to the server rather than just the last parts of the filenames. [If] you used
rsync -avR /foo/bar/baz.c remote:/tmp/
then a file named /tmp/foo/bar/baz.c would be created on the remote machine, preserving its full path. These extra path elements are called "implied directories" (i.e. the "foo" and the "foo/bar" directories in the above example).
Beginning with rsync 3.0.0, rsync always sends these implied directories as real directories in the file list, even if a path element is really a symlink on the sending side. This prevents some really unexpected behaviors when copying the full path of a file that you didn’t realize had a symlink in its path. If you want to duplicate a server-side symlink, include both the sym‐ link via its path, and referent directory via its real path. If you’re dealing with an older rsync on the sending side, you may need to use the
--no-implied-dirs
option.
Assim, o comportamento que você experimentou é esperado.
Como superar isso? Eu não testei isso, mas acho que uma solução viável seria ao longo das linhas:
mkdir -p some_dir/a/b
rsync -avz a/b/ some_dir/a/b # Trailing slash after first 'b'
rsync -avz a/b/c/f some_dir # No trailing slash after 'f'
Também recomendo a leitura da seção LINKS SÍMBOLOS da página rsync
man.