Drupal Association members fund grants that make connections all over the world.
While I'm a fan of curl over drupal_http_request() in general, there's actually nothing that DrupalOAuthClient::get() does that drupal_http_request() can't handle, and it actually works better: The header parsing in DrupalOAuthClient::interpretResponse() isn't accurate in all cases, especially where a proxy server and HTTPS are involved (the "200 Connection established" header throws it off, and it ends up interpreting the second actual response header as part of the body).
Rather than patching interpretResponse() to ignore connection established as well as 100 continue, I decided to make a patch that swaps back on to drupal_http_request(), which has header parsing that handles proxy headers and actually allows for proxy server configuration to begin with.
I know the 6.x branch is old as the hills, but this patch actually forward-ports to 7.x-4.x almost exactly (just a minor change needed to remove curl from hook_requirements in the .install file).
I hope you'll consider this change. We need it in our environment as proxy use for outbound is mandatory.