Sound goof, did the patch have been tested on all http1/0 proxy ?
From the rfc 1945 who define http/1.0 :
A valid Content-Length is required on all HTTP/1.0 POST requests. An
HTTP/1.0 server should respond with a 400 (bad request) message if it
cannot determine the length of the request message's content.
Proxies like nginx are very strict about it. More over nginx don't accept in proxy mode the POST/PUT request without body like a quick search in google would told you.
About content-length :
When an Entity-Body is included with a message, the length of that
body may be determined in one of two ways. If a Content-Length header
field is present, its value in bytes represents the length of the
Entity-Body. Otherwise, the body length is determined by the closing
of the connection by the server.
So indeed there is no need to bufferize the response if you close the connection at the end.
Just better to do it when you can it help the client to optimize the connection. So in the case you could do it like in send_json why not ?
All this stuff need more tests anyway I already provided some results on ml, did you see them ?