--
Even apart from the Go1 guarantee, what does that get you? If the Port field is an int you need to convert from a string to fill the field and then back to a string plus concatenation to use the Url. If it's a string you don't get much extra benefit over strings.Split(u.Host, ":").
Also remember that not all URLs are hrefs, eg what would the Port member mean when parsing a mailto: ?