Regarding the config as you outline it above - I don't think this is the way to go as it is not very flexible; ideally a plugin just requires to be downloaded to a certain directory and to be enabled in a single place, that's it. In the above code every time a plugin is added the config has to be changed to adopt the hooks.
Instead I would recommend a well-known location (index.php, config.php) in the plugins directory which calls those hook-registration points itself. This gives full control over to the plugin with minimal impact on configuration.
You're right - we do not need an extra configuration.
Plugins are placed in RC_home/plugins/PluginName/PluginName.php and contains "class PluginName extends PluginAbstract" Each time any event is raised we initialize every plugin class and try to call the corresponding function in the plugin. This way we do not need any configuration.
Is this your intention?
List info: http://lists.roundcube.net/dev/