Stable snapshots are actually great to minimize your dependency footprint. I read that in Rust you can end up with multiple versions of a transitive dependency in you binary, because cargo/rustc supports it, while Haskell doesn’t.
In nixpkgs as a Linux distribution it even makes sense to have such snapshots that are shared for all apps, e.g. when a security vulnerability is found, you only need to bump a central library instead of all apps individually and end up with Vendored crates with known vulnerabilities in Rust packages · Issue #141368 · NixOS/nixpkgs · GitHub (the nixpkgs Rust people event want to switch to a snapshot approach). However, in nixpkgs Haskell the other approach (you bringing your individual library versions via Cabal files) is not supported, probably due to https://discourse.haskell.org/t/request-for-comment-cabal-freeze-doesnt-produce-a-lock-file.
However, even with snapshots you still benefit greatly if the libraries have a wide range of supported GHC versions and other libraries so that it becomes possible to build snapshots with the latest versions. E.g. with nix as mentioned in How much effort does backwards compatibility require from library authors? - #23 by tbidne it’s huge pain to use newer library versions and/or newer GHC versions.