I think filesystem checkpointing is probably the only real way to do this.
Doing it in the package manager is only coming up with a weak version of it anyway.
Package systems that attempt it need to do things such as track file changes made in scripts. It is much easier to let the filesystem do this for you.
To make a completely reliable system, it probably needs filesystems for / and /usr; /etc; /home/$USER/.local. That way, to solve a problem you can roll back individually the binary executable files, the system configuration files and the user's configuration files.
Btrfs subvolumes seem to work really well for this.