Currently the user preferences from the startup.blend are used when there is no userpref.blend.
This can be confusing if you manually delete preferences and restart blender with preferences at the time of saving the startup (instead of using factory settings).
The tool-tip for saving preferences reads:
Save preferences separately, overrides startup file preferences
This was useful for some months after moving preferences out of startup.blend, however I don't think it makes sense anymore.
Also I doubt many users are even aware of this.
- Simplify logic for users, tooltips can be more straightforward, no need to document odd behavior.
- Simplify logic for developers (see: wm_homefile_read, it's getting over complicated).
- Don't use preferences from startup.blend.
- Add userpref.blend to source, so updates to the startup.blend are possible.
... Possible alternative could be to initialize the UserDef struct directly, however thats a bigger task.