The item ‘Modify other segments’ in the masking options of the ‘Segment editor’ defaults to ‘Overwrite all’. When working with multiple segments, we may forget to switch to ‘Allow overlap’ so as to preserve prior work, and notices it when we can’t revert changes.
I hereby suggest that this item defaults to ‘Allow overlap’ rather. If it is forgotten as such, nothing is lost, and ‘Subtract’ in ‘Logical operators’ can still be used.
Segmentation settings are implemented in qSlicerSegmentationsSettingsPanel.cxx.
You can implement GetOverwriteMode() and SetOverwriteMode(...) methods in vtkSlicerSegmentationsModuleLogic.cxx to get/set the default OverwriteMode - very similarly how vtkSlicerSegmentationsModuleLogic::GetDefaultSurfaceSmoothingEnabled() and vtkSlicerSegmentationsModuleLogic::SetDefaultSurfaceSmoothingEnabled() are implemented. You can then use these methods in qSlicerSegmentationsSettingsPanel.