Basejails - These will nullfs mount all the necessary directories from a RELEASE to inherit any changes to that RELEASE (updates). You could create a jail from a basejail if you set that basejail to a template. As for what they share, you can do iocage fstab -l JAIL to see which directories are shared exactly.
0 /mnt/tank/iocage/releases/11.2-RELEASE/root/bin /mnt/tank/iocage/jails/foo/root/bin nullfs ro 0 0
1 /mnt/tank/iocage/releases/11.2-RELEASE/root/boot /mnt/tank/iocage/jails/foo/root/boot nullfs ro 0 0
2 /mnt/tank/iocage/releases/11.2-RELEASE/root/lib /mnt/tank/iocage/jails/foo/root/lib nullfs ro 0 0
3 /mnt/tank/iocage/releases/11.2-RELEASE/root/libexec /mnt/tank/iocage/jails/foo/root/libexec nullfs ro 0 0
4 /mnt/tank/iocage/releases/11.2-RELEASE/root/rescue /mnt/tank/iocage/jails/foo/root/rescue nullfs ro 0 0
5 /mnt/tank/iocage/releases/11.2-RELEASE/root/sbin /mnt/tank/iocage/jails/foo/root/sbin nullfs ro 0 0
6 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/bin /mnt/tank/iocage/jails/foo/root/usr/bin nullfs ro 0 0
7 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/include /mnt/tank/iocage/jails/foo/root/usr/include nullfs ro 0 0
8 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/lib /mnt/tank/iocage/jails/foo/root/usr/lib nullfs ro 0 0
9 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/libexec /mnt/tank/iocage/jails/foo/root/usr/libexec nullfs ro 0 0
10 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/sbin /mnt/tank/iocage/jails/foo/root/usr/sbin nullfs ro 0 0
11 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/share /mnt/tank/iocage/jails/foo/root/usr/share nullfs ro 0 0
12 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/libdata /mnt/tank/iocage/jails/foo/root/usr/libdata nullfs ro 0 0
13 /mnt/tank/iocage/releases/11.2-RELEASE/root/usr/lib32 /mnt/tank/iocage/jails/foo/root/usr/lib32 nullfs ro 0 0