In client.go, at this location, there's this code:
if req.proxyURL != nil {
c.transport.Proxy = http.ProxyURL(req.proxyURL)
} else if c.proxyURL != nil {
c.transport.Proxy = http.ProxyURL(c.proxyURL)
} else {
c.transport.Proxy = nil
}
The final else clause should be removed. If the caller provides a transport, it may already have a proxy configured, there's no reason to set the transport's proxy to nil.