During the first start, the GUI writes down default values of -dbcache, -par, -upnp, -listen into its internal GUI only settings container.
Changing the default value will have no effect on the GUI level because the old default value – even if it was untouched by the user – was persisted.
This adds a simple migration path for -dbcache because we have bumped it up to 300MB in 0.13 (see #8273).
I also had a solution where we don't store the default value at all. But, because we show the value as "set" in the GUI settings, we should also persist it locally. This would only make sense if there would be a switch between custom and default ( [ ] custom value ____ | [ ] default value ).