Talking this over with @ogra (to make sure it was sane on devices), he points out that a good measure of how much space we should leave to hand is the amount of space needed for an essential snaps refresh (i.e. for core, kernel, gadget). That leads to ~250MB being reasonable on core (but better would be to determine exactly that size via looking at the current snaps, + some padding).
On classic, 100MB leaves ~30MB for random misc beyond a refresh of core, which seems fine.
In all cases we probably need this to be configurable. There always will be a scenario where the admin will need to shrink this in a hurry.
Also, in talking of ~30MB of space for growing, @pedronis rightly points out that this means that UpdateMany will have to have some of this logic (and the ability to do a selective refresh, as space permits).
Also that even a simple refresh will need to check what it’s trying to refresh before saying no based on disk space.
Lots of fun!