The non-caching behaviour of
iterate when used as a generator is not documented and counter-intuitive. It should be documented, just like it's documented for e.g.
Even though the docstring for
f to be side-effect free,
f might take a long time to compute, in which case users should be wary that the computation might happen more than once.