パイプの正常終了は書き込み側からしかできないっていうの、割と合理的だと思っていて、実はunix系の整理も割とそんな感じですよね (yes | head とかやったときのyesは異常終了扱い)
パイプはあくまで書き込み側から読み取り側に情報を伝えるもので、例外は ・エラー ・パイプの詰まり であると整理する。パイプの正常終了とは「送ろうとしたリストはこれで終わり」という情報を伝えるものであるから、書き込み側においてはエラークローズと区別される。