The biggest hurdle I've had with NixOS in practice, on real iron, on a real machine (not just in a VM) is that there's just no way to "cheat".
NixOS is different, everything is based on the Nix language, and if you discover that something you need isn't in the package-store, the only way to get it onto your system is by leveraging Nix to build the package for you.
Basically the only way to get software to work on NixOS is by learning the Nix language and becoming a NixOS packager.
That is: With NixOS you cannot just wget a tarball, ./configure and make if something you need is missing.
This is probably a very intended "viral" design to boost the package-store, but it's also a hindrance for those who cannot put in the time and investment required to fully learn Nix.
For me, it meant getting my laptop on NixOS was something I wouldn't be able to accomplish over a full weekend, and because of that it became a non-option.
If those constraints don't apply to you, more power to you :)