At line 632, it loops through the configured proxy hosts, trying proxy_run_scheme_handler on each one. If it receives any return code other than DECLINED or HTTP_BAD_GATEWAY, it accepts the result.
But then at line 656, having failed to find a proxy which will handle the request, it tries the request directly. In this case, it retries on any error return if max_attempts has not been reached. This would cause a retry, for example, on an authentication required status return, which seems odd.
Perhaps I am missing something.
Rici