I know of cb_share_config and that's what I used to transfer my colorscheme since manual editing is error prone. It's a clear & good tool.
Being able to merge different config parts through a scripting interface for cb_share_config may do the trick (I don't change my settings much) but everytime you change a setting of interest, you will need to re-export manually the parts you want to versionize (bothersome).
If you have settings in different files by design, then it becomes more straightforward.
I can understand that it may not be worth to put compiler and linker options in different files but seeing the colorschemes in default.conf while every editor out there put them in files under a "colorschemes" folder really surprised me.
This could also enhance robustness, because if something goes wrong while saving (we have seen this already), not everything configured by the user is lost.
Not only that but I also noticed that codeblocks saves settings on exit, which is quite annoying when crashing (as I use nightlies it happens) or using several instances in parallel (the last instance to exit overrides all the modifications made from other instances).