I’ve reported to MS that documentation of Configuration.Save Method (ConfigurationSaveMode, Boolean) is not detailed enough and they provided the clarification:
The ConfigurationSaveMode parameter can have one of the following values:
Causes all properties to be written to the configuration file. This is useful mostly for creating information configuration files or moving configuration values from one machine to another.
Causes only properties that differ from inherited values to be written to the configuration file.
Causes only modified properties to be written to the configuration file, even when the value is the same as the inherited value
The additional forceSaveAll is sometimes needed to override the behavior as defined by the ConfigurationSaveMode and force all the configuration properties to be saved. This is a combination of inherited and locally defined or changed properties.