Мне кажется, что большинство из того, что может быть достигнуто с помощью  HttpWebRequest/Response, также можно выполнить с помощью класса  WebClient. Я где-то читал, что WebClient - это оболочка высокого уровня для WebRequest/Response. 
 До сих пор я не вижу ничего, что может быть достигнуто с помощью HttpWebRequest/Response, которое невозможно выполнить с помощью WebClient, а также где HttpWebRequest/Response даст вам более "мелкозернистый" контроль.
Когда следует использовать WebClient и HttpWebRequest/Response? (Очевидно, что HttpWebRequest/Response являются специфичными для HTTP.)
Если HttpWebRequest/Response - нижний уровень, то WebClient, что я могу выполнить с помощью HttpWebRequest/Response, которого я не могу выполнить с помощью WebClient?