The Hazelcast-plugin is a direct replacement of the much older ‘clustering’ plugin, that provided similar functionality, but was based on a different library (Tangosol Coherence). Much of what you see in the architecture of the current plugin is probably there as a form of inheritance from that older plugin.
Much of the clustering functionality in Openfire depends on interaction with the Hazelcast API, on a programming level. I’m sure that this somehow could be modified, but the amount of effort involved would be huge, and this would almost certainly be a breaking change. That’s not very appealing.
Additionally, there are generic arguments to be made around things like ease of installation: with the current setup (running things as a plugin), there is very little that needs to be configured, other than installing the plugin, to get clustering to work in many scenarios.