When an HTTP URL passed to url-generic-parse-url does not include a port number, and the environment variable http_proxy is set and also does not include a port number, infinite recursion results. See the following backtrace for an example:
Debugger entered--Lisp error: (error "Variable binding depth exceeds max-specpdl-size")
url-generic-parse-url("http://proxy")
...
url-generic-parse-url("http://proxy")
url-scheme-register-proxy("http")
url-scheme-get-property("http" default-port)
url-generic-parse-url("http://proxy")
url-scheme-register-proxy("http")
url-scheme-get-property("http" default-port)
url-generic-parse-url("http://www.some.where/")