I do think a Nix-like tool to be used for writing/replacing package managers for new programming languages would benefit from some dependency resolving functionality, instead of just saying 'shove it in a monorepo or pin via VCS refs instead of semver'. Is that not necessary?
Nixpkgs doesn't go down that road because it would be unwieldy at their scale, but more specialized nix-based tools 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.)