On the other hand if a user is content with the current defaults and we then change the defaults, it would "suddenly" also change for this user.

Also your change doesn't remove currently saved defaults.

Example: 
We release 0.9.0 with this change and for 1.0.0 we change the default font from _Monospace_ to _Comic Sans_.

* Users that used older versions before, will see no change since the default font was already saved previously.
* Users that started with 0.9.0 will have the font changed although they might have liked the _Monospace_ font (That's a reasonable guess since otherwise they would have changed it already).
* Users that already changed the font to _Comic Sans_ still have it in their settings and another change of the default font won't effect them.

Actually you would need something like:

~~~
if (font.pointSize() != 10) 
    settings.setValue(c_fontSize, font.pointSize());
else
    settings.remove(c_fontSize);
~~~

That is a lot of code for an hypothetical case of changing a default setting that might also upset current users which are content with the current defaults.