That is, instead of resorting to flatpaks and things of the like, why don’t we expose a way for libraries to express version information dynamically and just have those versions available and the dependant application can check if what it needs is available and just use that?



You’d also need some way to automatically install the right package, if a dependency is missing. And you’d need to make this work seamlessly on all distros.
As a dev, I want my users to be able to use my software with as few clicks as possible. Ideally, just one. I’ll also accept two (download + run). For expert users, we can talk about 4 clicks, where they’d still unpack an archive after download.
But anything beyond that, especially if they have to first troubleshoot what dependency is missing on their system, that’s just not happening. They’ll just give up and delete my program, because they don’t want to invest time into getting it to run, when they don’t even know yet, if it does what they want. I know, I would.