Introduction: Note this is basically a dupe of
MDL-31900, that I failed to find while creating this. In any case, I think that this a more correct/ambitious generalization of the problem (not only affecting to repository components), hence I've asked to Adam about to keep this open, instead of the original one that should be the normally correct solution on dupes. My fault for missing the original one, sorry.
Note: Add +6 votes from the original issue.
History: While looking to
MDL-50176, for curiosity I looked to the current contents of the mdl_config_plugins table, and really we have all sort of unnormalized stuff there:
Proposal draft: This issue is about to:
1) Find all the offending uses in core and proceed to convert them to proper "component" (subsystem or plugin).
2) Change the the functions documentation to clearly state that component is expected. Surely also change the function parameter from $plugin to $component.
3) Under debugging, validate passed components, informing about incorrect ones.
4) Document the changes in release notes/main upgrade.txt....
Feel free to make an epic of this or whatever. The five points above are just the basic-draft of the actions to perform.