No primeiro caso, seu comando de proxy se expande para:
ssh bastion-server -W internal-server:22
No segundo,
ssh bastion-server -W 10.0.0.123:22
O primeiro não funciona porque o servidor de bastiões não reconhece o nome internal-server
.
(A tradução não acontece do lado do cliente, porque o cliente simplesmente não entende que deve olhar para Host internal-server
quando você executa ssh internal-server%via-bastion
- no que diz respeito a esses nomes são totalmente diferentes).