Сами же и ответили на свой вопрос - "с большим функционалом". Вот и разница.
Идеальным вариантом для создания клиент-серверных приложений, если вы много этим занимаетесь, является создание своей собственной библиотеки для работы с сетью, удобной именно для вас.
И, пожалуй, чем ниже уровнем она будет основана, тем лучше. Надо брать уж никак не ниже HttpWebRequest.
Даже в таком отличном фреймворке, как .NET, очень многое несовершенно. Не нужно забывать, что библиотека .NET мало менялась с начала нашего века. Новое добавлялось, а старое не доарабатывалось. Разумеется, очень многое можно сделать и лучше. Но надо действовать, а не надеяться на MS, который по каким-то причинам не видит смысла совершенствовать .NET и создавать еще более высокоуровневые решения, чем те, которые там есть. Чем быстрее вы начнете в процессе реальной работы создавать свой фреймворк, тем лучше.