What about declarative listing of installed packages? One of the neat things about NixOS is that I know exactly what packages I've manually installed since they're specified in my config file.
The other big difference I notice between NixOS and e.g. Debian is that on NixOS I only have to specify the changes from the defaults. On e.g. Debian I usually have to change config files that already exist. Then when the package updates its default config I end up having to review all the changes to the config, even when they have nothing to do with what I've explicitly configured.
https://man.freebsd.org/cgi/man.cgi?rc.conf
It's not as completely declarative as Nix but it was never intended to be.