After watching CGI::Application evolve from having no plugins to having twenty plugins, I now really grok the power of plugins.
The biggest benefit for an open source software is the decentralization. For the maintainer, the responsibility is decentralized, so you don't have to anguish offer whether some feature should be added, because you are responsible for maintaining it by default later.
For contributors, the freedom is decentralized. No matter hoping your change gets into the core. Just release your plugin. The lower barrier to having compatible work published motivates people to actually do it. Without a viable way to share the work, people won't bother and will keep their updates to themeslves.
For end users, customization and choice are benefits. They can select just the plugins they want, and avoid ones that don't seem stable yet.
In CGI::Application, users have at least two choices for plugins to integrate with Template Toolkit, including a more specialized and a more generalized solution.
Now, WWW::Mechanize could really benefit from this decentralization-via-plugins. The Mechanize bug queue is overflowing, including almost 20 wishlist items, many of which I suspect could be handled via plugin system if it existed.
Well, a plugin system for Mech does exist, WWW::Mechanize::Pluggable, but it's not in the core, and it's not the only design worth considering.
So, I've filed my own Mech wishlist item for plugin support in the core.
If this also interests you, let's discusss it more on the Mech developer list: www-mechanize-development@lists.sourceforge.net.
Mark