The current "auto_rejoin" is too general as it does two things: rejoins standalone masters and also forces a 1-Master-N-slaves topology. These should be separated. Rejoin should only rejoin master servers which MaxScale saw going down and were failed over. This feature can work for arbitrary topologies.
Another option, "enforce_simple_topology", lets MaxScale assume that the topology should be one master with N slaves replicating from it (no relays, multimaster etc). This would allow for a similar aggressive rejoin which is currently implemented. Even the failover of a master which went down while MaxScale was off may be best moved to this feature, as it would be a bit like autopiloting. By activating this feature, a DBA gives MaxScale the liberty to manage the cluster as it seems fit. When this feature is not on, the monitor is more careful, preserves the topology if possible and only performs operations when it can be reasonably sure it's the right thing to do.