I’m mainly on Linux for over 20 years (still have one Windows Box for VR and some games, hopefully I can migrate this to Linux with the next hardware iteration). I was on Suse, Debian, Mandrake, Gentoo, Ubuntu, QubesOS (which does not self-identify as Linux-distribution) with Fedora+Debian Qubes. I never had those installed on my main machine, but also worked a lot with kali, grml, knoppix, dsl, centos, Redhat and certainly a bunch of others.
The absolute best for me, as working in it security and with different customers, is QubesOS. Sadly my current laptop is so badly supported by QubesOS that it burns 6h battery in 25 minutes and sleep/suspent does not work at all, so I’m currently on Ubuntu (which I hate for their move to snap and being Ubuntu in general)
your first two points can be mitigated by using checksums. trivial to name the file after it’s checksum, but ugly. save checksums separately? safe checksums in file metadata (exit)? this can be a bit tricky 🤣 I believe zfs already has the checksum, so the job would be to just compare lists.
restoring is as easy, creation gets more complicated and thus prone to errors