>>2not even close. what we are really talking about is iteration by enumeration (i.e. internal iteration) vs iteration by stream (i.e. external iteration). the two are provably isomorphic, but differ a lot in semantics and implementation
internal iteration is imo the superior choice - it is easier to read, easier to reason about (for data structures that aren't lists), requires less state (i.e. obtaining and maintaining an iterator, deallocating resources), and has predictable resource utilization (when iterating over items requires file/db access)
it is a lot harder (but not impossible) to stop iteration before exhaustion and do things like interleave iterators, but i find the other stuff outweighs this