That sounds bad for multiple reasons:
- We don’t want to block updates of working software; it’s unexpected and will create problems.
- We have no interface to ask for agreements on a license.
- Most license changes on free/open source preserve the software as free/open source.
- Many license changes will be trivial fixes (we lack good information today).
- No other package manager does that.
And with all that said, this is all unrelated to the original point: that issue exists whether we keep an authoritative version in the store or not, so is not good motivation for doing it one way or the other.
The approach I would recommend is this: we keep the authoritative version in the store, because we need to display something to people that want to know what the license is, and because we don’t want to overwrite that license every time a snap is pushed (again, same problem of summaries and descriptions). Locally, we display the locally installed snap license. When the local snap is refreshed to something containing a different license, we issue a warning through the upcoming warnings framework. We also warn when the just installed snap holds a license that diverges from the authoritative one in the store, which they may have read.