(Some/all?) plugins call Foreman::Plugin.register in a reloader.to_prepare callback which could imply a few things:
- this needs to happen on app startup
- this needs to happen on code reload
- this involves application code
Plugin registration is not consistent across plugins. Katello calls Foreman::Plugin.register via a required file which won't be executed again on reload!. REX and Foreman Tasks do invoke register on dev code reload and that's why reload! is broken.