とりあえず>>969>>976から読み取ると、LINQで繋がれたメソッドは全部独立したIEnumerableを返してるような誤解をしてるんだと思う
実際は宣言時にチェーンの最後にあるメソッドが一つのIEnumerableを返すだけだし、間にある他のメソッドは最後のメソッドがデリゲートとして一括で実行する
だからMoveNextは一つの要素に一回ずつしか基本的に呼ばれず、従ってループも一回だけ
これで納得出来ないならもう5個チェーン繋げたら5回ループされてると思っても良いよ、別にそれでも実害は一切無い