if a miss behaving plugin calls Jenkins.save() during startup then Jenkins will honer this and save the config file.
But as Extensions may not yet be loaded and the memory model fully built this will cause loss of data as the partially populated memory model will be written without any diagnosis as to why.
If you enable FINE level logging on Jenkins you can see logs such as
However the data is written (just without the Jenkins version) and there is no call stack to identify the caller (and worse the log is at FINE level even if plugins have not been loaded.)
Plugins should not be manipulating Jenkins during startup (at until EXTENSIONS_AUGMENTED has been reached).
If something attempts to do this there MUST be a big fat warning in the Jenkins logs at the minimum along with a call stack to identify the caller.
The save should probably be silently vetoed (possibly Jenkins should terminate as at this point the memory model is likely to be inconsistent with what it should be and terminating is the only way to prevent data loss as the next save after this would cause the inconsistent memory model to be written to disk).