Uncle Bob's Interface Segragation Principle (ISP) tells us that many client-specific interfaces are better than one general-purpose interface. But plugin architecture in common case suppose to have one or more general-purpose interfaces. Thus a so-called micro-kernel doesn't know anything about specificity of clients and how they will use this general-purpose interface. So seems that ISP and plugin architecture are the opposite things, i.e. plugin architecture violates ISP.
I guess that the main reason (advantage (+)) for plugin architecture not to comply with ISP is to increase runtime extensibility. Your micro kernel just works and someone just writes and inserts plugins extending functionality. In case of set of specific interfaces you will need to add new interface, recompile and redeploy the module, which expose this new interface.
The main disadvantage (-) of plugin architecture is that if this thick interface will have even minimal changes, all the modules connected to general purpose interface must be adapted, recompiled and redeployed.
In other words:
(+) cheap runtime extension
(-) expensive micro-kernel updates (plugin interface change entails making changes to all depending modules)
There is a feeling that my comparison is at least incomplete. Are there any other differences, (dis)advantages?
In what cases does it make sense to choose the plugin architecture, and in what cases to separate interfaces?