@mwl fwiw my personal experience has been that initial installation is an unpleasant experience, but after that I have had pleasant experiences on Debian 11/12/13 (upgraded, never reinstalled) with ZFS root and /bot. This is using kernel & zfs packages from debian.org.
Initial installation: Run a very large series of commands in the terminal of a live CD to install, you can't use the interactive installer at all. It really is very daunting and I don't fault anyone for falling out of the funnel at this point!
grub compatibility: modern zfs has a set of compatibility flags for grub2. Use them.
kernel compatibility: zfs-dkms is automatically built when a new kernel is installed. In the rare case that the build fails for some reason, the previous kernel has remained bootable, allowing me to boot and fix the problem. If this had not been the case, things could have been rather difficult.
other problems:
*I made the pool containing /boot way too small, but that's life.
- At one point, docker and zfs were interacting in some mutually destructive way but that was a Debian or two ago and now I use podman anyway.
- possibly since the systemd transition there's something funky that tries to import all zfs pools, not just ones in the cache. If you boot with a zfs pool on a usb drive that mounts at "/" it'll mount the one over the other and then you have pain. This I last encountered in Debian 12 and have carefully avoided trying to check if it's been fixed since.
It's rather sad that at one point, Debian's installer had zfs support. I used it to install debian kfreebsd with all zfs filesystems. However, it has never been usable with the linux kernel since there's not a zfs kernel module udeb available and has likely been removed by maintainers (but I haven't gone checking anything about this)