Reusable global configuration should be packaged once and consumed as a dependency rather than duplicated across individual Mule applications. A shared Mule project/plugin can contain common flows and global elements, including reusable error handlers. Each consuming application then declares the shared artifact as a dependency.
The crucial additional step is that the Mule configuration containing that global error handler must be imported into the consuming application. Simply placing a JAR/plugin on the Maven dependency graph does not automatically make every Mule XML configuration inside that artifact part of the application's active configuration.
MuleSoft currently documents the same pattern through imported project references: a JAR containing a shared Mule project can expose flows, error handlers, and connection configurations, and the consuming project specifies which Mule configuration file to import. Mule's configuration model also supports < import file="..."/ > for merging shared configuration files such as a global error handler.
A Mule domain is not the appropriate CloudHub reuse mechanism in this scenario. Option C is incomplete because it omits the configuration import step.
Reference topics: reusable Mule configurations; Mule plugin/shared project; Maven dependency reuse; configuration imports; global error handlers.
Official documentation: https://docs.mulesoft.com/anypoint-code-builder/int-global-config-elements
===============================================================