In imperative languages, it's a leaky abstraction not reducing the cognition overhead, compared with the plain loop.