I believe it is not just me who gets mad every time an update surprisingly change previous configurations/settings or functions. My idea to reduce such problems bases on several existing configuration concepts of hardware and software.
There should be a level-based system, similar to hardware like network switches. There is e. g. a “factory default”, a “user default” and a “temporary” configuration, which will be set to “user default” after restart. At KDE there could be a “factory” and a “user” configuration. Additional levels are possible, e. g. “admin”, “group”, “new”, “test”.
The configuration of lower level should not contain the complete configuration, instead the “factory” configuration always include all parameters and the “user” configuration includes changed parameters only. Therefore new parameters can be added and default parameters can be changed, without deleting the users changes.
It should be possible to define a global (for all users) configuration and a local configuration. This might be very helpful for administration, not just for several users within the same computer, but also for all users within an enterprise. By deleting the users configuration the administrator is able to set a working default.
Additional to the above mentioned points, this concept could be designed based on “config”-files, but also as an database. I could even imagine a central masster-configuration, where the settings of all programs are inside, include a documentation. Changing one parameter would change the setting of all programs which use the same parameter, if no specific configuration has been set for the single program. This would exceed the above mentioned concept, but could be a huge improvement.