If you care, this mechanism is an artifact of Open MPI's build system: we made the choice to allow our plugins to be built and loaded dynamically (i.e., each plugin as its own dynamic shared object) or built statically (i.e., each plugin is physically part of, for example, libmpi.so or libmpi.a).

OMPI's configure script makes the choice of static vs. dynamic on a plugin-by-plugin basis. It records these results in various static-component.h files throughout the tree. This allows OMPI to know, at run-time, which plugins are already included in the library (and therefore do not need to be dynamically opened).