Now we have architecture and flavor fields in version.json. We could use it to prevent people from accidentally upgrading to an incompatible flavor.
Architecture mismatch should be a hard error.
Flavor mismatch should be a prominent warning, since there are situations when, say, an experimental flavor is compatible.