I guess url.Parse could lowercase the proto, but I don't think this happens very often, so wondering if it's worth it.
I tried to reproduce it, but it seems to be lowercase:
# curl -i
http://purl.org/dc/elements/1.1/HTTP/1.1 302 Moved Temporarily
Date: Mon, 06 Aug 2012 15:18:44 GMT
Server: 1060 NetKernel v3.3 - Powered by Jetty
Content-Type: text/html; charset=iso-8859-1
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 277
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<HEAD>
<TITLE>302 Found</TITLE>
</HEAD>
<BODY>
<H1>Found</H1>
</BODY>
</HTML>
For what it's worth, RFC 3986 states:
6.2.2.1. Case Normalization
For all URIs, the hexadecimal digits within a percent-encoding
triplet (e.g., "%3a" versus "%3A") are case-insensitive and therefore
should be normalized to use uppercase letters for the digits A-F.
When a URI uses components of the generic syntax, the component
syntax equivalence rules always apply; namely, that the scheme and
host are case-insensitive and therefore should be normalized to
components are assumed to be case-sensitive unless specifically
defined otherwise by the scheme (see Section 6.2.3).
Please do file an issue.
Best,
Patrick