Depending on how the df commands identify the filesystem, you get different results. Under POSIX, this is undefined, so all responses are "OK".
The AIX command stats() the directory to get the filesystem, and in the case of reversed mounts, /local/fs1/mp2 is a directory inside the /local/fs1 filesystem, so it gives you the df of the /local/fs1 filesystem.
The GNU command seems to use the mount points to select the filesystem.
In both cases, the result is "correct but useless/misleading".
Since it's almost impossible to avoid the creation of a /local/fs1/mp2 directory inside the /local filesystem, my workaround for these issues is:
For hierarchical filesystems, flatten the hierarchy elsewhere, then use symbolic links.
e.g.
I don't usually do this, for if you want the paranoid approach: On the rootvg, create a 1PP filesystem /flat, and a 1PP filesystem /local, create a file in each (this will contain any mount mistakes by now allowing any meaningful writes under the mountpoints).
Change your filesystem mountpoints to:
/flat/fs1.root
/flat/fs1.mp2
On the /flat/fs1.root filesystem: rmdir mp2 ; ln -s /flat/fs1.mp2 /flat/fs1.root/mp2
On /local, rmdir fs1 ; ln -s /flat/fs1.root /local/fs1
If you want to use mp2 regardless of fs1 being mounted, before mounting fs1, create a symbolic link in the mountpoint to /flat/fs1.root/mp2
Results:
/flat: (root:system, 755)
fs1.root - directory (root:system, 755), mountpoint for test1lv
fs1.root/mp2 - symbolic link to /flat/fs1.mp2
fs1.mp2 - directory (root:system, 755), mountpoint for test2lv
/local: (root:system, 755):
fs1 - symbolic link to /flat/fs1.root
/flat/fs1.root: (test1lv)
mp2 - symbolic link to /flat/fs1.mp2
(And that's why I avoid nested filesystems like the plague)