Adding a theme to your Plone site makes it available for activation imediately, for all Plone sites on the same Plone instance. This is not always the desired behavior. To require the theme to be installed as an add-on before we can activate it we have to change the way the registration is done.
Sometimes it might be useful to run a GenericSetup upgrade step when Plone is getting updated to a new version. For Plone itself, plone.app.upgrade contains all necessary information and upgrade steps to bring your Plone instance to the next level. But how about your add-on?