Okay so digging deeper into it, Nix does use absolute paths for libraries, but they point to the correct version of the installed library within the "Nix store". So it's not quite like Java classpaths. But this is still fine as far as avoiding version conflicts goes. It still allows you to have multiple versions of the same library installed at once.
The only place where there can be a "default" version of a package is a user/shell environment for packages that provide executables. Makes sense.
Not sure about Nix, but usually versioning is done with sonames. Like libbullshit.so.1 and libbullshit.so.2, which are resolved into different versions.
And why absolute paths? This makes no sense.