NOTA: esta não é uma questão específica do RoR. Eu só mencionei isso para ilustrar um ponto de vista.
Eu certamente vejo o benefício dessa abordagem; a maior delas é que uma base de código pode ser implantada de forma idêntica em vários servidores sem alterar o código ou temer que o aplicativo esteja usando o recurso errado. No entanto, tenho medo de pular no vagão da banda.
Primeiro, a abordagem não parece escalonável em minha estação de trabalho de desenvolvimento (laptop) ou em servidores. Se estou trabalhando em 10 sites diferentes e cada um deles está usando o Amazon S3 (por exemplo), preciso de 10 EVs diferentes. A gestão será difícil:
colisões de nomenclatura são uma possibilidade distinta (especialmente se eu estou trabalhando em projetos legados que eu não tenho controle completo);
a visibilidade é obscura (quais EVs existem na máquina de destino? que foram ou podem ser desativados?);
Em segundo lugar, um dos principais pontos de venda, como eu o entendo, é que usar EVs retira os dados confidenciais do repositório, onde olhos curiosos podem vê-los. Isso só parece que deve ser um problema para repositórios públicos, que eu não tenho nenhum. Todos os meus repositórios são privados, muitas vezes devido a problemas contratuais, como NDA ou direitos de propriedade.
Como tudo isso acontece em cenários da vida real? Esta abordagem é melhor para algumas situações do que para outras? Existem outros profissionais que superam minhas preocupações aqui?
Variáveis de ambiente são um conjunto de pares de chave / valor para configurar ... o ambiente (ou seja, coisas que pertencem diretamente ao sistema operacional, como locais de pastas compartilhadas, por exemplo).
Como uma ferramenta de configuração de aplicativos, nunca fui um grande fã de variáveis de ambiente ou configurações de registro, preferindo arquivos de configuração pelas mesmas razões que você já declarou.
As variáveis de ambiente devem ser armazenadas no controle de versão e gerenciadas com um sistema. fantoche, chef, etc são todos projetados para lidar com isso e evitar muitos dos problemas que você mencionou.
Como acompanhar os links que apontam para aplicativos da Web existentes em uma Intranet? AGPL - Se eu modificar o código-fonte, tenho que distribuí-lo?

Na Roma Antiga era habitual representar a deusa Securitas com uma lança e com uma cornucópia. A lança é símbolo da força pública que garante a ordem social e por sua vez a cornucópia é símbolo da abundância. Esta representação da Securitas ilustra bem que o conceito mesmo de segurança é certamente polissêmico. As minhas preocupações sobre segurança não necessariamente serão partilhadas por todas as pessoas que conformam a sociedade.
Esse contraste entre diferentes noções de segurança percebe-se bem no filme Parasitas, por exemplo. Lá, uma família rica tem a constante preocupação de proteger a sua propriedade e o seu bem-estar. Para isso, conta com tecnologia de vigilância, uma residência situada em uma urbanização segura, e uma serie de profissionais que visam cobrir as necessidades da família. Estas preocupações contrastam com a outra família protagonista, antagonista da primeira, onde as preocupações se centram em satisfazer duas necessidades básicas, nomeadamente, habitação e alimentação.
Mesmo assim, quando na esfera pública se fala de segurança, é a primeira das conceições a que adoita prevalecer. Assim, por exemplo, na legislação espanhola, quando se regula a segurança cidadã, são reguladas as intervenções policiais e os deveres das pessoas quanto ao mantimento da ordem pública. É também certo que existe uma normativa sobre segurança social, que faz parte de um fraco Estado social, contudo o conceito hegemônico de segurança quando se abordam políticas pública é o primeiro.