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.
- /boot/loader.conf for kernel settings to be set only at boot
- /etc/sysctl.conf for kernel settings to be set anytime
- /etc/rc.conf for rest of configuration