For me the biggest benefit is reproducibility. I can get a package to build on any machine exactly the same and with no hidden dependencies.
How does it handle OS-specific dependencies/distinctions? Or if e.g. a package requires ruby or python to be installed?
With Nix you just declare postgresql as your package inputs and you are done. All needed parts to build and install psycopg2 are there.
Your package/project is completely isolated from your OS libs.