Um teclado é apenas um dispositivo de entrada, não tem relação direta com a entrada padrão como tal. A entrada padrão de um programa é meramente um fluxo de dados abstrato que é passado como descritor de arquivo 0.
Muitos programas que usam entrada padrão recebem entrada do teclado, mas não fazem isso diretamente. Em vez disso, na ausência de instruções para fazer o contrário, seu shell conecta a entrada padrão do novo programa ao seu terminal, que está conectado ao seu teclado. Que a entrada vem do teclado não é uma preocupação do programa, que apenas vê um fluxo de dados vindo do seu terminal.
Quanto a como os dois teclados funcionam simultaneamente, esse trabalho normalmente é executado no nível do kernel, não no terminal ou no nível do aplicativo. Os aplicativos podem solicitar a entrada de um dos teclados ou um mux de todos eles. Essa representação geralmente se aplica à maioria dos dispositivos de entrada humanos, não apenas aos teclados.
Se você estiver usando o X, ou uma camada intermediária similar entre o kernel e seu programa, mais abstrações podem estar presentes, mas a idéia básica é a mesma - aplicativos utilitários normalmente não acessam o teclado.