I'm only an occasional ZFS user with sufficient recollection of how earlier O3x versions could cause kernel panics that I prefer to have the ZFS kext loaded only when I actually need it, idem for importing pools.
I build from source myself, so it's trivial to patch the code so the zpool command will load the kext if that's not yet the case, from the non-standard location where I put it normally (under /opt/local). I do load the zconfigd and InvariantDisks plists into launchd but not the others; this prevents the kext from autoloading behind my back. I do put zfs.fs under /System, to prevent the popup invitation to initialise the unrecognised volume everytime I import a pool.
So far so good but the other day I thought I'd start putting the zfs.kext into the standard location under /System because after all there are lots of kexts there that aren't loaded automatically. To my surprise the kext did load when I rebooted after a crash that wasn't related to ZFS. I definitely didn't have a pool imported at the time of the crash but I may have still had the kext loaded.
What reason could the system have had to load the kext? Is that because of the filesystem plugin under /System or is there simply logic in place to reload kexts that were loaded when the system was rebooted?