結局2種類のうちどちらを選ぶか、だけの問題
(A) 遅延処理
 ・メソッドチェーン時の中間生成配列などを無くせる
 ・無限長も扱える
 ・無駄がなく有利
(B) 即時処理
 ・メソッドチェーン時の中間生成配列などが必ず必要となる
 ・無限長を扱えない
 ・(A)よりも不利

RubyのlazyやRustのイテレータはもちろん(A)タイプ
Goでも欲しいのは(A)
(B)タイプのものは検討する必要がない