I think that in a lot of cases, the body of an HTTP response or request is going to be rather small and PHP developers are going to want to interact with bodies as a string. On the other hand, there are services like S3 where you can send GB sized requests, but those can, and should, be treated differently using methods from the StreamInterface like `getContents()` and `read()` so as to ensure that the entire contents are not loaded into memory. See also my response to your other message about __toString().