To illustrate the problem, consider the following use case:
# mount -ox-initrd.mount /dev/vdb /mnt
# mount -ox-initrd.mount /dev/vdb /mnt/mnt/
# cat /run/mount/utab
SRC=/dev/vdb TARGET=/mnt ROOT=/ OPTS=x-initrd.mount
SRC=/dev/vdb TARGET=/mnt/mnt ROOT=/ OPTS=x-initrd.mount
# mount --move /mnt /opt
# cat /run/mount/utab
SRC=/dev/vdb TARGET=/opt ROOT=/ OPTS=x-initrd.mount
SRC=/dev/vdb TARGET=/mnt/mnt ROOT=/ OPTS=x-initrd.mount
Here we can see that the entry for the moved mounted tree /mnt has been correctly updated to the new target /opt however the target of the mounted sub tree /mnt/mnt remained unchanged whereas its new location is at /opt/mnt.