The extensions contain a license which is displayed during installaion. If a the license is displayed during a update can be determined by the attribute
/description/registration/simple-license/@suppress-on-update

The default value is false, which means that the attribute is not set, then the license is displayed during an update.

lic1.oxt: attribute not set
lic2.oxt: attribute set to false
lic3.oxt: attribute set to true

