This behaviour is caused, because the instances are added to module_instances:
https://github.com/Source-Python-Dev-Team/Source.Python/blob/master/addons/source-python/packages/source-python/core/__init__.py#L89
However, we don't want all instances to get garbage collected. Delay instances for example should be removed from module_instances when the delay has finished while Event instances should stay in module_instances until the plugin has been unloaded.