Iterators are a terrible interface for streams. How would you modify them?

> What happens when I use a Generator for my entity body? Oh no! The standard prevents it!

No. You would wrap the Generator in a StreamInterface object.

> Things like this are why entity body representations ARE NOT and will never be part of the interface. They're implementation details. As such they must be defined in the broadest possible strokes.

I think the StreamInterface defines them in the broadest possible strokes. It allows you to work with iterators, PHP streams, strings, decorate other stream interface objects with added functionality at runtime, and provides a clean interface for interacting with the entity body.