Did something similar recently. Turns out rsync by default, if it encounters a symlink to a directory and it’s instructed to copy a directory with the same name, will remove the symlink and create an empty directory.
So I had a script that installs crosscompiled kernel modules via rsync /path/to/nfs/path /
This worked perfectly until Debian 12, like other distros, decided to merge /usr, so now /bin is a symlink to /usr/bin. First time I run the script after upgrade /bin gets replaced and then no programs can be started as all binaries look for /bin/ld-linux.
I managed to fix it by booting into busybox and recreating the symlink, but it took a while until I figured out what was wrong, wasn’t familiar with usrmerge.