Проверен исходный код .NET Framework и вот ответ: WebClient использует HttpWebRequest, который использует следующую логику для следующих перенаправлений:
else if (AllowAutoRedirect && (
ResponseStatusCode==HttpStatusCode.Ambiguous || // 300
ResponseStatusCode==HttpStatusCode.Moved || // 301
ResponseStatusCode==HttpStatusCode.Redirect || // 302
ResponseStatusCode==HttpStatusCode.RedirectMethod || // 303
ResponseStatusCode==HttpStatusCode.RedirectKeepVerb )) // 307
{
Значение заголовка Location находится вResponseHeaders
коллекция WebClient (или аргументов события при использовании async).