Explain to me how it knows something went wrong? The only thing I can think of is a CRC for the registry, which would need recomputing every time the registry is changed. That'll be nice for performance.
The registry is a tree like structure. Make use of that fact. ZFS doesn't crap all over itself during metadata updates, either, which is checksummed to no end and usually involved updating all checksums from the modified filesystem block, going up the metadata
tree up to the uberblock.