@blacklight I feel like at least two of these have reasonable answers.
Why containers? Because containers are the only way you're getting a workable security model on a modern Linux system, without running an entire VM. Docker is a piece of garbage and has probably kept container technology back for a decade, but containers have their reasons.
And the same for flatpaks, really. It is, right now, the only way you can distribute a piece of software for Linux and expect it to work anywhere. If you don't, you have to defer to 50 different library versions packaged by 50 different distros who may apply 50 different patches to your software and potentially take months to get a new version through. It's a bad solution but there is no alternative.
The dependency management issue is also true for containers: there is no better way to solve it. Luckily containers are getting better at build times, sharing dependencies and file sizes nowadays, but it's slow going.
Why did we get to this point? Because the security model of Linux is still that of a "worse is better" operating system from 1971 and because distros seemingly haven't improved their dependency management in two decades.
@blacklight With the sudden popularity of things like Nix and the development of built-in container support in systemd I do believe there's a better future for Linux dependency management here, I just hope we'll actually get there and won't spend another decade stuck in Docker hell.
That just leaves the problem of GUI toolkits being so bad that everybody would rather use Electron.