Usamos bastante variavés de ambiente sim. Dando um exemplo, você pode ter uma feature flag para uma política de senha forte. Onde eu trabalho, usamos kubernets, então é comum settar o valor dessas variáveis no arquivo render.sh, onde é configurado, entre outras coisas, o configmap dos ambientes. Então ao configurar isso, podemos settar a variável STRONG_PASSWORD_CHECK: true
em homologação e deixar como false em produção até ser testado certinho, o front estar pronto para lidar com os possíveis erros, etc.
Aí cada linguagem acredito que vá lidar de um jeito com como ler essas variáveis, mas no geral, a ideia é você configurar o valor da variável em cada ambiente, no seu código você lê esse valor (seja por um arquivo .env, render.sh, etc) e toma as decisões a partir disso.