From .cproj files it appears that some properties are written multiple times :
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
... local include path
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
... local include path
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
... local include path
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
... local include path
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize most (-O3)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<avrgcc.compiler.optimization.PrepareDataForGarbageCollection>True</avrgcc.compiler.optimization.PrepareDataForGarbageCollection>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.UseShortCalls>False</avrgcc.compiler.optimization.UseShortCalls>
<avrgcc.compiler.optimization.DebugLevel>Minimal (-g1)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.compiler.warnings.ExtraWarnings>True</avrgcc.compiler.warnings.ExtraWarnings>
<avrgcc.compiler.warnings.Undefined>True</avrgcc.compiler.warnings.Undefined>
<avrgcc.compiler.warnings.WarningsAsErrors>True</avrgcc.compiler.warnings.WarningsAsErrors>
<avrgcc.compiler.warnings.CheckSyntaxOnly>False</avrgcc.compiler.warnings.CheckSyntaxOnly>
<avrgcc.compiler.warnings.Pedantic>False</avrgcc.compiler.warnings.Pedantic>
<avrgcc.compiler.warnings.PedanticWarningsAsErrors>False</avrgcc.compiler.warnings.PedanticWarningsAsErrors>
<avrgcc.compiler.warnings.InhibitAllWarnings>False</avrgcc.compiler.warnings.InhibitAllWarnings>
<avrgcc.compiler.miscellaneous.OtherFlags>-std=c11 -fno-split-wide-types -fno-tree-scev-cprop</avrgcc.compiler.miscellaneous.OtherFlags>
<avrgcc.compiler.miscellaneous.Verbose>False</avrgcc.compiler.miscellaneous.Verbose>
<avrgcc.compiler.miscellaneous.SupportAnsiPrograms>False</avrgcc.compiler.miscellaneous.SupportAnsiPrograms>
<avrgcc.compiler.miscellaneous.DoNotDeleteTemporaryFiles>False</avrgcc.compiler.miscellaneous.DoNotDeleteTemporaryFiles>
<avrgcc.linker.general.DoNotUseStandardStartFiles>False</avrgcc.linker.general.DoNotUseStandardStartFiles>
<avrgcc.linker.general.DoNotUseDefaultLibraries>False</avrgcc.linker.general.DoNotUseDefaultLibraries>
<avrgcc.linker.general.NoStartupOrDefaultLibs>False</avrgcc.linker.general.NoStartupOrDefaultLibs>
<avrgcc.linker.general.OmitAllSymbolInformation>False</avrgcc.linker.general.OmitAllSymbolInformation>
<avrgcc.linker.general.NoSharedLibraries>False</avrgcc.linker.general.NoSharedLibraries>
<avrgcc.linker.general.GenerateMAPFile>False</avrgcc.linker.general.GenerateMAPFile>
<avrgcc.linker.general.UseVprintfLibrary>False</avrgcc.linker.general.UseVprintfLibrary>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
<Value>libm</Value>
<Value>libm</Value>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.linker.optimization.GarbageCollectUnusedSections>True</avrgcc.linker.optimization.GarbageCollectUnusedSections>
<avrgcc.linker.optimization.PutReadOnlyDataInWritableDataSection>False</avrgcc.linker.optimization.PutReadOnlyDataInWritableDataSection>
<avrgcc.linker.miscellaneous.LinkerFlags>-Wl,--relax</avrgcc.linker.miscellaneous.LinkerFlags>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include</Value>
</ListValues>
This pattern repeats on and on but for each configuration :
[0] Release -> props only appear once
[1] Debug -> props appear twice
[2] MinSizeRel -> props appear 3 times
[3] RelWithDebInfo -> props appear 4 times
So there seems to be a clear relationship between configuration index and how many times a property will be repeated.
I think that actually the list of properties is not cleared between 2 calls and gets bigger each time we evaluate a configuration
From .cproj files it appears that some properties are written multiple times :
This pattern repeats on and on but for each configuration :