Do most companies work such a way that their highest paid technical people are far removed from writing code?
A maioria das empresas ruins. Há uma tendência natural para que mais responsabilidade envolva menos escrita de código e mais foco em outros aspectos do desenvolvimento de software. Dito isso, é muito comum as pessoas técnicas perderem o contato com o que é comum / melhor / possível se não gastarem tempo realmente codificando. Isso tem um efeito desastroso na empresa.
Is this a natural tendency for a developer's career?
Sim. No final, uma pessoa pode ajudar muito mais o produto, orientando, coordenando, projetando, conhecendo o domínio do problema e realizando outras tarefas de desenvolvimento de software, ao escrever código. E com toda honestidade, ter boa liderança ou habilidades de design é muito mais raro (leia-se: valioso) do que a habilidade de escrever código.
Can a developer have it all (code AND set direction?)
Absolutamente. Embora você precise perceber que a quantidade de código será diminuída. Você só não pode fazer bem essas outras coisas valiosas se passar 80% do dia de cabeça em uma IDE.
A outra opção que acontece é a do "engenheiro principal" por falta de um termo melhor. Alguns desenvolvedores são muito especializados. Eu trabalhei com alguém, por exemplo, que escreveu drivers ethernet gigabit para Linux. Nós precisávamos que ele fizesse esse tipo de trabalho para nós, e uma vez que apenas um punhado de pessoas poderia fazer esse trabalho bem, ele fez montes de dinheiro além de escrever código como a maior parte do dia.
A maioria das empresas não precisa desse tipo de especialização. Eles estão apenas reunindo dados ou fazendo outro site / mobileapp.