For "ErrorDocument nnn http://url", ap_die() will respond with 302 redirect, and r->status will be updated to indicate that. But the original error could have been one that keeps us from being able to process subsequent requests on the connection. Setting r->status to REDIRECT keeps us from dropping the connection later, since it hides the nature of the original problem.
Example:
client uses HTTP/1.1 to POST a 2MB file, to be handled by a module...
module says no way and returns 413...
admin has "ErrorDocument 413 http://file_too_big.html"...
Apache sends back 302 with Location=http://file_too_big.html, but since this is HTTP/1.1, Apache then tries to read the next request and blows up (invalid method in request)...
It sends 302? Don't you mean it does a subrequest? I'd hope so.
Anyway, +1 to the patch.
....Roy