Отвечая на актуальный вопрос о том, как это работает: "Что, если программа на левой стороне записывает больше данных быстрее, чем другая сторона конвейера может надеяться их обработать?"
Такого не бывает. В канале есть довольно маленький буфер ограниченного размера; см. Насколько велик буфер канала?
После заполнения буфера конвейера программа-отправитель блокирует. При вызове записи ядро не возвращает управление программе до тех пор, пока данные не будут записаны в буфер. Это дает программе чтения процессорное время для очистки буфера.