As previously mentioned, by default snapd detects when users are on slow or metered connections. if it doesn’t, you can force snapd to think it is, by setting this (bottom) tickbox in Network Manager.
For some users, yes, and again, not all users think like this. It really is beneficial to get your brain outside your own head and consider how other people think sometimes. Most “Normal” users do not care what was updated, what version number something is, which libraries are used. They just want the latest version of the software, which works. If something breaks, they expect the developer to fix it and a new update to come along. They’re not remotely interested in these details because the computer is a black box which they use to do a job. Version numbers are meaningless to them, and only people like us care about them.
There are way more of them than there are of us.
It is possible for a developer to publish two versions of a snap in the store. See for example the Skype snap. It has both a stable and an ‘insiders’ build available. Users can switch between them. Many other snaps do the same thing. Firefox could do the same with ESR.
You can certainly imagine all kinds of things. Indeed it is possible to defer updates to later, if you want, for example this will defer until tomorrow.
sudo snap set system refresh.hold="$(date --date=tomorrow +%Y-%m-%dT%H:%M:%S%:z)"
Currently we don’t have a GUI to present that in a friendly way, but that could be made, I think.