I agree that there are many good reasons to use XML config files, but XML is limited in terms of flexibility. There is a reason that we use programming languages as they allow for looping, conditional logic and a number of other capabilities that allow us to express our requirements more flexibly. You can work around this by using multiple XML config files and pulling in the right one based on conditional logic, but once you get beyond a certain level of complexity, XML ceases to be the most appropriate choice (and at any time it is a pretty verbose choice). It will be interesting to see how this discussion plays out - using Groovy as a config language. Interesting!
Here is someone else who isn't sure about the overhead of using and processing XML files. Not sure that I agree, but it is a discussion I'd like to see opened in the CF world. Python and Ruby developers seem to do just fine without XML (think Rails and more importantly Django). So, in which use cases is XML the most appropriate choice?
Let's also remember that one of the benefits of XML in Java (don't need to recompile) is irrelevant in CF.
Diclaimer: I think XML config files do have a real place. I just think we need to develop heuristics for the use cases when they are not the optimal solution.