rsync parameter “–delete-before” with limited recursion depth?

This is my backup command:

sudo rsync -avh --progress --stats --delete-before /mnt/source/ /mnt/backup/

/mnt/source and /mnt/backup are identical disks with identical size.

But after major file operations (e. g. accidental change of datetime stamps of all files in a big directory somewhere below of /mnt/source), the backup fails because the target is getting filled up until there is zero space left.

Investigation of the issue showed up that there are many files not being deleted at the target, that does not exist anymore on the source side. This affects files on a deeper file hierarchy level:

Many subdirectories of:

/mnt/source/userdir/topicdir/

are smaller than subdirectories of the corresponding:

/mnt/destination/userdir/topicdir/

Repeated runs of the rsync command line above didn’t changed this – no file in this subdiretory tree on target was touched at the delete run.

Now, after running this, those files got deleted as expected:

sudo rsync -avh --progress --stats --delete-before /mnt/source/userdir/topicdir/ /mnt/backup/userdir/topicdir/

What is the reason for this?