Handling errors in nginx in a reverse proxy configuration
I hadn't read the documentation correctly. In-fact the bypassing of the rules by a 400 error is a simple as not having an error page directive.
This is from the proxy_intercept_errors documentation entry:
If you set this to on then nginx will intercept status codes that are explicitly handled by an error_page directive. Responses with status codes that do not match an error_page directive will be sent as-is from the proxied server. (emphasis my own)