Вы правы. Я вообще не понимаю, что есть этот спор, о чём он? GUI — это лишь дополнительный уровень абстракции над форматом хранения настроек. Текстовый файл — это именно формат, а не интерфейс, интерфейс — это редактор. GUI, будучи интерфейсом, в принципе не зависит от формата хранения настроек. Я могу поменять некоторые параметры, я могу поменять формат хранения настроек на, скажем, XML или базу данных (бинарную), для пользователя, занимающегося настройкой, это ничего не изменит, он и не заметит. Кроме того, GUI совсем не единственный представитель данного уровня абстракции: можно использовать и CLI: я, к примеру, для редактирования определённых настроек amaroK (когда попытка настроить через GUI была неудачной — баг в программе), использовал приложение командной строки kwriteconfig вместо того, чтобы напрямую лезть в файл. Другой пример — HAL и его hal-set-property.
Что касается автоматизации, то написанный для этого скрипт — по сути ещё один интерфейс для изменения параметров в текстовом файле, точно такой же уровень абстракции, как и GUI. И ничто не мешает программисту (как в случае с HAL) написать ещё и командный интерфейс для настройки, позволяющий заниматься автоматизацией сколько угодно.
Далее, в интерфейсе обычно есть контроль вводимых данных, то есть вы не сможете включить две конфликтующие настройки или указать неправильный параметр (если GUI хороший, мы ведь именно такие рассматриваем?).
Конечно, часто бывает, что в GUI есть не все настройки, но те, которых нет, обычно нужны очень редко, и предполагается, что пользователю они не понадобятся. Но, прямо скажем, и в текстовом файле есть не все настройки

Так что для каждого инструмента свои задачи. Бо'льшую часть настроек можно осуществить через стандартный интерфейс. Если необходимо настроить глубже, тогда необходимо задействовать другой интерфейс (текстовый редактор, ...). Если же нужно что-то совсем глубокое, тогда к вашим услугам текстовый редактор и компилятор, которые вместе образуют, пожалуй, самый гибкий метод настройки
