It appears only Genkernel-next can produce an initramfs that creates the /dev/disks/by-id symblinks. Without these it is impossible to deploy large ZFS raid arrays on controllers that attaches disks asynchronously.
This is a genkernel bug. I am part of the genkernl team, so assigning this to me was not necessarily wrong. My plan is to merge udev support into genkernel to resolve this, but my time is limited. I will do it when I find time unless someone else beats me to it.
and Dracut? Dracut doesn't officially support ZFS, yet.
genkernel HEAD has support for generating /dev/disk/by-id/ata-* and /dev/disk/by-id/virtio-* symlinks during boot:
It will be in v3.4.53. I am marking this as IN_PROGRESS until the next release.
This fix appears to be in current stable 126.96.36.199-r2 already, please reopen with details if this is still a problem for you