I'm sure we are missing lots of good applications due to our requirements.
What can we do to avoid this?
What do you think? Do you have other ideas? Are there other persons
who are annoyed by the current situation?
I'd like to start this with, I don't have an answer. However it is annoying!
Then I have another program. It's written in C++ so most of that side of things is fine, but it uses Lua plugins and this is where the drama starts. I just ship with the embedded ones, because version control of the (hypothetical) lua library packages and syncing it with whatever arbitary version of the library the program needs is hard.
Finally, for programs I write and use myself, if its a C program I'm pretty sure I'll find what I need for libraries, but in other languages not so much.
In the ancient days, we used to have some of these problems with binaries and shared libraries. Then newer, for their time, distributions such as Debian came in with versioned dependencies between the binary and the library. That didn't help when upstream used their own hacky un-maintained for years version of some library but it caught most of the cases.
So, perhaps there needs to be a new way for some of these newer packaging methods. I don't think we can say package all the things, even Debian has its limits.