I believe I've seen similar problems to this one before, involving awkward configuration of the
/boot folder.
When a pool is imported, the
/boot/zfs/zpool.cache file is updated. As far as I'm aware this file is used on boot to determine which pools should be automatically imported.
Because this directory doesn't exist on your system until after
bootfs is imported and mounted, ZFS is probably failing to update this file and so it only ever contains a record of your root pool.
It's difficult to know the best way to fix this without spending some time testing, and it's complicated by the symlink.
You could try something like the following: (Disclaimer: I don't know the exact configuration of your system and have never had to perform a process such as the below. It's entirely possible these commands could stop your system booting)
Code:
Import bootfs
# zpool import bootfs
Temporarily remove the symlink and create a /boot/zfs directory on the root pool
# rm /boot
# mkdir -p /boot/zfs
Hopefully you'll have a zpool.cache file on the bootfs which should contain details of your root pool
Copy this to the encrypted pool
# cp /bootfs/boot/zfs/zpool.cache /boot/zfs/zpool.cache
Export and import bootfs
This should update /boot/zfs/zpool.cache
# zpool export bootfs
# zpool import bootfs
With any luck /boot/zfs/zpool.cache should now include both pools
Copy it back to the boot pool and put everything back as it was
# cp /boot/zfs/zpool.cache /bootfs/boot/zfs/zpool.cache
# mv /boot /boot.bak
# ln -s /bootfs/boot /boot
During boot, I don't know if ZFS reads the cache file from the partition that it boots from (bootfs), or if it mounts the root filesystem (zroot) and reads it off there. If it's the latter then having that symlink isn't going to work as you have a chicken-and-egg problem.
/boot/zfs/zpool.cache doesn't exist until the system imports the
bootfs pool, but the system doesn't know
bootfs should be imported until it reads
/boot/zfs/zpool.cache.
Hopefully it reads the file from the same place it boots from (The fact it lives in the
/boot folder suggests this is likely).