Jestli chápu popis, tak ti jde o to, že máš program, který čte standadní vstup a vypisuje to na standardní výstup.
Ty tam pastneš blok textu, ono ho to hned začne číst a zpracovávat a vypisovat dřív, než se terminál popasuje s tím pastnutým vstupem, který tam ještě hrne, takže ve výsledku to máš na obrazovce promíchané.
takže pokud by sis ten vstup například pastnul do nějakého souboru (jménem x.txt) a pak tam přesměroval ten soubor
base64 -d <x.txt
tak by ti vyjel celý výstup, jak si ho představuješ, nerušený vstupními řádky
Naopak, pokud by sis přesměroval výstup do souboru
base64 -d >y.txt
a pastnul tam ten vstup, tak bys viděl celý vstup pěkně pastnutý a žádný výstup (ten by byl celý v tom y.txt)
A co se toho promíchávání týče, tak je to tak nějak dané jednak konkrétním programem, jednak velikostí vstupních a výstupních bufferů, taky typem terminálu a rychlostí zpracování a samozřejmě to můžou ovlivnit i procesy běžící na pozadí.
Ony obecně tyhle filtry nečekají na ukončení vstupu, ale začnou zpracovávat to, co dostanou, když to dostanou a sypat ven co mají, když to mají a když si na jednom terminálu mícháš jak vstup, tak výstup, tak to pochopitelně je často nějak promíchané.