Nix is powerful but ultimately very niche IMO. There are a lot of flaw with it.
From a package management perspective its security model seams to be to programatically pull from upstream sources which is fine if you have complete trust in all of those sources.
Nix is kind of a whole new layer of abstraction on top of an already super complex system. The level of programmability is maybe useful for something like a very specific power user scenario?
Also, in many cases the extra layer is a complete 1 for 1 wrapper meaning that its only an abstraction in the sense that its another layer not that its reducing what the user needs to understand about the depths of systemd. I find it hard enough remebering the synthax for systemd services and sockets. Nix has its own different but just as complex twist on it.
Theres also a ton of stuff that I wouldnt know how to even begin figuring out how to do in nix on my own. Search for how to set desktop wallpaper for example. If you feel that setting wallpaper using nix is intuitive or straight forward I would love to understand how?