A relação de processos em um pipe depende principalmente do shell que você usa.
Os shells modernos criam todos os processos simples (comandos) em um pipe direto para os filhos do shell principal.
Os shells mais antigos fazem isso de uma maneira diferente e específica da implementação.
Alguns shells executam um loop while dentro de um sub-shell quando a entrada é redirecionada, outros não.
while
não é um comando interno do shell, mas parte da sintaxe do shell.
Conclusão: não tente analisar as relações pai / mãe em comandos complexos do shell, a menos que você seja o autor desse shell e goste de verificar se as coisas funcionam da maneira como elas são pretendidas neste shell específico.