(name . bug-guix@gnu.org)(address . bug-guix@gnu.org)
According to my analysis, zfs on root is not a good idea because grub doesn't support many zpool features, and grub needs to read kernel and initrd from /gnu/store on root filesystem.
If I want to mount ZFS file systems through file-systems of operating-system, raw-initrd should import zfs pools in file-system-scan-commands if any file system is zfs.
If I want to mount ZFS file systems through ZFS services, then those ZFS services should run before services are run because those services might need ZFS file systems, and ZFS services should be run after devices are mapped because some ZFS file systems might be on LUKS.
If ZFS support goes into raw-initrd, opearting-system will have to support loading zfs encryption keys in some way. If ZFS services are added instead, zfs-load-key service can be run during boot.
ZFS services are easier and less intrusive to existing gnu guix codebase than adding ZFS support to raw-initrd.
Either way is fine for me, but if you want to add ZFS services, I recommend the following services.
zfs-mount > zfs-load-key > zfs-mount > zfs-zed
zfs-share service seems unnecessary to me.