> The thing is, you're not proposing any viable alternative to an interface

Perhaps I'm not being clear. I'm advocating the following for performance reasons:

```
@return string|resource|Iterator
```

> allowing a mixed return type is like opening a can of worms

This statement is total FUD. The only thing a *limited/defined* mixed return type does is allow implementations to operate with maximum performance if they choose to do so. It doesn't interfere with use-cases desirous of userland abstraction:

```
$body = $message->getBody();
$normalizedBody = $body instanceof Iterator ? $body : new Stream($body);
```

While we're on the topic ... `Iterator` completely invalidates the need for `StreamInterface`. I hope everyone realizes that *all* streams are in essence `Iterators` in the first place. If you require anything more specific than `Iterator` in terms of class typehints for the entity body you're making a huge mistake. What happens when I use a `Generator` for my entity body? Oh no! The standard prevents it! Things like this are why entity body representations *ARE NOT* and will never be part of the interface. They're implementation details.