> Iterators are a terrible interface for message bodies. How would you modify them?

Modification is completely irrelevant in this context. Your entity body is only one of three things:

1. A string.
2. A resource.
3. `SeekableIterator`

1 and 2 are immutable as far as the HTTP message is concerned and 3 uses basic OOP 101 composition to inject whatever you need into the `Iterator` at construction time. Modification happens before the entity body ever goes into the Message. Implementors don't care what went in, they care about what comes out.