Yes, that is exactly what is done. It makes sense, too, think about it.
If there is a config file in the user's profile folder, then obviously, the user will want to use this one. It is a valid assumption that if you have settings saved in your user profile, then you really want to use these. Nothing else makes sense.
However, if no config file can be found in the user's profile, then Code::Blocks does not know about the user's wishes to start with. This may change after RC3, when we include the divination plugin, but to date, we are utterly clueless about our user's thoughts.
However, if you put the application onto a CDROM or a Flash-Stick, and you pack a config file into the
same directory as the application, then it is a reasonable guess that you actually want Code::Blocks to use that configuration rather than factory settings.
Again, we cannot possibly know what is going on inside someone's head, but this is what people would
probably want.
Finally, in the case that no configuration can be found in any place (including the executable's directory), Code::Blocks creates the well-known
default.conf in the user's profile folder. Obviously, the vast majority of users wants settings to be persistent, and people would be upset if they had to turn off "Tip of the day" every time the application starts
Hint:I forgot to mention that earlier, sorry: If you really want to be roaming, roaming, roaming, roooooaming, then put your config file onto a webserver and start Code::Blocks with the option
--profile=http://url.to/your.conf. That way, Code::Blocks gets its configuration off the internet, and it starts exactly the same way every time, on every PC.