BTRFS still cannot be trusted for various reasons. It was deprecated as of RHEL 7.4
It's very good at what it does within that assumption, of course. But do you think behaviours like "you filled up too much of your disk, performance is crippled unless you wipe and rebuild" is "Just Works"?
You can see some of the fun hoops you have to go through to get ZFS as your root filesystem here: https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-...
For now I just have 4 disks in a ZFS-raid for storage, and then I have installed my OS on a separate SSD.
If you've written it up in public, any chance of a link?
And of course, after each kernel update, link your /dev/by-id/... devices into /dev and rerun grub2-mkconfig by hand. Otherwise, you won't boot the new kernel you just updated.
If this machine weren't a pet, it would be wiped clean and reinstalled with xfs /.
All of my Linux machines with ZFS are running Arch Linux (as well as a few servers running FreeBSD) and I don't have to do anything special.
For example, I'll update them every few days (or whenever I don't mind having to "re-open" all my applications, tabs, etc.) and I just run "pacaur -Syyu", have it update everything, and reboot when it's done. It starts back up, I enter in my FDE passphrase, and it boots right up.
https://github.com/zfsonlinux/grub/issues/5
zpool status will show only basename component of the device name and grub will look for it in /dev only. As I created the pool with ata-* device names, which are constant per device, it will of course fail, because they are in the /dev/by-id/ and grub is not looking for them there.
Next time there is a kernel update, I' going to try the env variable mentioned in the august 2017 comment. Hopefully it will work right.
ZFS woes, and Red Hat's penchant for yanking hardware support (like a PERC/4e RAID controller I encountered this spring), have brought me to the point that the only new CentOS installations I'll make will be KVM guests.
The last straw for me was the 1708 release, when the ZFS modules failed to build, leaving my home NAS stuck on the old kernel. Out went CentOS, in went Ubuntu Server. No regrets.
So I've taken to having ext4 or whatever as the boot drive and a zpool for anything I care about :)
With archzfs I get binary upgrades with every kernel, and I've never had a problem at boot after a kernel update.