Duplicate Plugin Types

I am using version 6.05 in D7.

If my application is to support a couple of different types of plugins (Reports, Interface, etc.), should I be creating a descendant of the plugin manager for each type?  Or can I just use one TupfPluginManager and check each if it supports the interfaces if each type?

I want to make sure that I do not get two plugins of the Interface type loaded.  And I am not getting an event call to the unregister when a package is unloaded.  Shouldn't I?  When a plugin is loaded it also triggers the RegisterPlugin event.  But no unregister when it is unloaded by the framework setup by the Wizard.  I am able to code an unregister, but would have expected it to be part of the template.  Also it looks like it is called after the unload. 

And is there method of preventing duplicate loads of the same plugins?  Other then disabling the load after it is called once?