Basically the possibility of mounting one filesystem at several places breaks the concept of a tree hierarchical filesystem, converting it in a directed acyclic graph (even you can try to mount a mounted filesystem into a subdirectory of itshelf, breaking more to a possible cyclic, nondirected general graph). Basically, the problem is that when you try to pass up to the parent directory using the ..
entry in the mounted root directory, you have to select which of the now several parent directories to follow to get to the parent.
In linux, there's a --bind
option to mount that allows you to mount a directory (not necessary for it to be a root directory on a filesystem) at some other place (not a mounted filesystem, but a plain directory) so you can mount things like the /proc or /sys filesystems on chroot(2)ed processes and let them access to this framework.
This kind of mount is different in the same sense as the diference between soft and hard links to files. It's treated differently by the kernel and it only allows a true mount point per root filesystem. The reason is basically the same as you cannot create loops with hard links and you can with soft. You cannot mount again a mounted filesystem, and you can mount --bind
several times the same directory.