Yes that is a fair comparison. In the latter you have to write down or remember what you did to reproduce it, and even if you make a script it could screw up and leave your system in a bad state.
That script can also stop working or misbehave once the underlaying system state changes, e.g. as the repository packages get updated.
Not really, unfortunately. In my opinion, Nix is more like using Haskell instead of whatever language your team is using to write software.
I got pretty far the first year without really writing much nix code at all.
> Nix is more like using Haskell instead of whatever language your team is using to write software.
In my professional experience, this has worked well :)