Nix is an umbrella for a stack of various solutions.
Nixpkgs doesn't do version or feature resolution, but other tools (that are not nixpkgs) can and do.
Nixpkgs doesn't do version or feature resolution, but other tools (that are not nixpkgs) can and do.
The next step is then realizing you actually don't need the useless legacy version numbering scheme at all, and that you wasted that effort for nothing.
I'm not sure what you mean, through, by not needing the actual program versions.
Version numbers are an attempt at content-addressing from the time when software came on floppy disks and CD-ROMs. It sorta made sense given the constraints of that technology.
Nowadays trusting git tags over git revision hashes makes no real sense. (Except that git tags are kinda shorter to type, but who cares.)