I'm not convinced its wise to change this now - it's not strictly needed to change it and I think it's the sort of thing which we should only do *after* we have a reliable initialisation system. This should likely remove the need for any hacking around in 3rd party packages which triggered this code in the first place.

Doing some hunting in the hunting through the history that piece of code was originally added in fd702fe03422dd7a0d84eeac5c990c5cc46470bd (June 2006!) in order to handle some strange edge cases regarding many to many initialisation. So it is definitely related to "lack of a reliable init system" - once this is fixed it *should* be able to be safely removed.