Plugins are loaded in two phases. First, they're loaded into a separate ApplicationDomain so that we can verify that the version is compatible with the player's version. Then they're loaded into the same SecurityDomain so that class types are merged. It's not a good practice to use external linkage because you can never be sure that the player the plugin is loaded into will have all of the class types that your plugin needs (and you won't find out that a class is missing until the player tries to use it, as opposed to at load time).
Note that there's an undocumented static property on SWFLoader called allowValidationOfLoaderContent. If you set this to false, then the plugin loading will skip the first validation step. This isn't a recommended practice, but if you absolutely know that your plugin is of the right version, then you could skip the first validation step.
Brian, thanks for the tip!
For now all the plugins are developed by ourselves and the only external library used is OSMF and couple of static const holders. OSMF is loaded using SWF taken from the SWC - so it has all the definitions required. So the problem you've mentioned is not a big deal for now. However the size of plugins are reduced greatly when using external linkage that is a requirement of a task.
before someone else gets a stroke over this, it's allowValidationOfLoadedContent and not allowValidationOfLoaderContent...