If you use an autoexec.cfg for your settings, then when you are in game and change your settings, it will not overwrite the autoexec.cfg, you retain the settings in the autoexec.
basically this is how it works:
1. Start game
2. autoexec.cfg is loaded up first
3. cvars on autoexec.cfg are written to the 'dynamic' cfg file
4. game uses variables that are on the 'dynamic' cfg file
5. Change a variable ingame and it writes to the 'dynamic' cfg, the autoexec.cfg remains unchanged.
6. goto 1.
So as you see, you need to change the variables in the autoexec.cfg for changes to be permanent.
If the variable is not in the autoexec.cfg, then that variable will load up as you last set it.