Configuration files provide administrative flexibility.
Flexibility to reconfigure networks addresses, logging options, and other interface options. Recompilation requires a C compiler and programmer, and introduces the risk of unintended side effects if anything in the build environment has changed. Environment variables are good for customizing a user's environment with a few options, but less well suited for applying and supporting a certain configuration over a large user base. Among the administrative and support problems of environment variables is the uncertainty of which values are active for a given user. Although some global mechanism may have initialized the user environment, individual users and scripts can easily change those values, confusing support.