На самом деле есть довольно очевидное преимущество использования первого параметра (TcpStream, а не Socket). Преимущество заключается в том, что потоковый API более гибок, когда для одной и той же программы требуются разные базовые реализации.
Например, код, который иногда может использовать SSL, а иногда может не использовать его, может переключаться между SslStream и TcpStream без изменений в вызывающем коде. Это гораздо труднее сделать, используя только простой Socket API.