[The following is not refering to the current version of TM; it's just a general discussion.]
To break it down, you could say that there are four levels on which to change settings: 1. Globally. 2. Per language. 3. Per project. 4. Per file or document.
...and two modes: A. Permanent changes. B. Temporary changes.
The_most flexible_ system would then be the ability to change on all levels, in both modes. In pratice, this is probably not desirable as it would bloat the interface almost no matter how it is done. I do agree (but this is not necessarily the view of the TM author) that more things should be changable on level 2 for instance, while I have less use for levels 3 and 4 (but this is also a matter of taste). I think in the future, some thought needs to go into this in this with respect to future TM development. It's always a balance of keeping it simple/non-bloated but also giving you the possibilities you want.
Like Allan mentioned, I think in the long run a preferences system of some kind (and maybe integrated with an editor for language stuff/syntax highlight) is unavoidable. But that said, I really like the ability to quickly change behaviour settings around like now :-).