The idea of versioned configuration is in part a result of gui-driven configuration. If you can configure via text file, then configuration can be versioned via standard version control mechanisms. Otherwise, you're going to wind up with something half-assed.
I had a lot of insight when I started using Concourse CI. All CI workflows in Concourse are straight-up yaml files - no gui anything. This is such a different experience from almost entirely gui-driven systems like Jenkins.