We had the same question come up in the design of the OpenMx system (a statistical software package I helped design).
Here’s how we resolved it:
Power on global defaults are defined as one structure. The structure must be completely filled with valid values.
Individual presets can override the power on defaults. A blank preset has invalid values in its global structure. On loading the preset, all invalid values are overwritten with the current global defaults.
If an individual changes a global default while a preset is loaded, that value is stored into the preset’s global structure.
Loading a special preset (call it NULL) resets the system to the original power-on defaults.
In this way, when people start a new preset, they get the power-on defaults. One can set the power-on defaults to be a useful set of values for all new presets. But the user can override any global default in a particular preset and save that preset knowing that the global value that they changed will come back in that preset.