Never used nix, but their stated goal is to make implicit dependecies explicit (and reproducible). Isn't it only natural for this to sometimes bring a dependency hell to light, that otherwise could have been swept under the rug?
Or phrased differently: maybe the problem here wasn't nix, but the way developers chose their dependecies