O grande benefício de um arquivo de configuração, seja xml, json, ini, é que ele separa os dados do comportamento. Isso pode ajudar a mantê-lo legível. Você pode fazer isso com código também; você simplesmente não é forçado a fazer isso.
Se você preferir ficar com os arquivos de configuração, uma forma de atender sua necessidade de proteger sua configuração seria compilar sua configuração de alguma forma. Isso poderia ser qualquer coisa, desde a ofuscação à criptografia, passando pela proteção contra zip e senha. Nenhuma será perfeitamente segura; nem é código, mas deve evitar que o usuário casual mexa nas configurações.
A configuração no código pode ser mantida simples, mas requer disciplina. Os padrões de construção ou criação podem ser aproveitados para isso. Se você tiver tempo para escrever um, você pode ir tão longe quanto criar um construtor DSL (Domain Specific Language).