What's your alternative? I've used OpenRC before and it was nice, but it didn't take long to find a use-case that systemd handled easily but OpenRC made difficult. Also a few packages expect systemd to be present and either fail to install or partially install so I had to figure out how to implement the missing functions in OpenRC.
I think they're a good way to package apps. Superior to Flatpak for sure. I like Flatpak too and if Canonical abandoned Snap tomorrow, I'd switch my snap-packaged apps to Flatpak. The only non-bullshit downside of Snap is the proprietary server-side and the lack of multi-repo support. I don't care much about either because I know implementing either is fairly uncomplicated and it will happen should the reason arise. If Debian wanted to start using Snap, it'd take them a month to get the basics working with their own server side. If the client side was proprietary too, I'd have had a completely opposite opinion on Snap. Finally Canonical supplies all the software on my OS. I use third party repos only when absolutely necessary. If Canonical ran a proprietary apt server side, I wouldn't even know, apt doesn't care. Some of the myriad HTTP mirrors could easily be running on IIS, or S3, or Nexus. The trust equation for snap is equivalent.
Because you can package and deploy OS components with it. As a result you can build an OS with it, do foolproof updates of it and ...gulp, happy tear... rollbackcomponents without involving any other system like a special filesystem.
My bravery comes from being a software guy that's been doing OS software development for over a decade so I believe my opinion is somewhat informed. 😂 I'm currently working on a software updates implementation for an automotive OS.
I think this is just a difference in the use case. Flatpaks are designed for desktop applications while Snap was initially designed for exactly the purpose you describe.
The initial use case for Snap, when it used to be called Click (circa 2012-13), was mobile apps for Ubuntu Touch. Those were the same as desktop Qt apps, just using the a mobile theme and layout. Canonical developers just had the foresight to create a design that isn't limited to that use case. As a result Snap is a superset of Flatpak in terms of use cases. Flatpak can probably be rearchitected to match that if anyone cared. If that were the case I'd also be drumming it up.
The funny thing is, we wouldn't be having any of these discussions over the merits of Snap if RedHat came up with it instead of Canonical and the server side was OSS from the get go. When RedHat was cool that is. In fact likely Canonical would have been using thet too. Just like they use PulseAudio, Systemd, and Wayland.
Tell us you don't know why you need Single Source of Truth on package installation and content without using the phrase "dependency hell is self-inflicted".
A single source of truth for software is one way to solve that. There are others with different pros and cons in active use that have shown pretty good results.