(Falando do ponto de vista de alguém que se sente valorizado sendo sênior no Brasil)
É realmente bem difícil se sentir valorizado comparando com o salário de fora. Esse é o motivo. Em outras profissões é mais difícil comparar com o salário de fora porque é mais difícil (normalmente impraticável) trabalhar pra fora.
O peso dado a oportunidades costuma ser muito maior pro lado do dinheiro. Eu chutaria algo como:
Dinheiro > Oportunidade de Crescimento (financeiro ou não) > Ambiente > Aprendizado
Aprendizado e Ambiente são coisas que variam muito de empresa pra empresa, vai ter ruim e bom aqui e lá fora.
O dinheiro trabalhando pra fora é muito maior na média. Um pleno trabalhando pra fora pode (e normalmente ganha) ganhar mais que um sênior bem valorizado no Brasil.
Pra um sênior bem valorizado no Brasil, as oportunidades de crescimento em uma mesma empresa são bem baixas (ou ele vai virar principal/staff engineer, tech lead ou gerente, e isso provavelmente não vai dobrar o salário dele). Já pra um pleno trabalhando pra fora, ainda tem muito pra onde crescer.
Dado tudo isso, não penso que o desenvolvedor seja menos valorizado que a média das profissões no contexto nacional, a diferença é que a gente tem motivo pra se comparar com o mercado internacional.
Como resolver isso?
Em um contexto micro, a cultura da empresa e o ambiente contam muito, mas eu diria que algo que poucas empresas fazem no Brasil e poderia ser mais comum é stock options. Você mantém o programador porque ele acredita que aquele pedacinho de empresa dele vai valorizar. Bônus ajuda também.
Em um contexto macro:
Não tem outra forma sem ser valorizar a nossa moeda.