Никаких «приаттачиваний» не существует - дочерний процесс запускается с дескриптором который остался от родителя и это уже никак не может быть изменено родителем. В bash и FreeBSD'шном /bin/sh, например, читает только pipe. В то же время в теории можно породить вспомогательный процесс который читает несколько входов последовательно, склеивая их. Похоже так умеет zsh - там в процесс попадает и pipe и содержимое файла.
Проверять это лучше так:
Для data-parser не будет. < в конвейере работает для первой программы. То есть, для echo, который stdin не читает. data-parser'у привязывается stdout от echo.