Забавный момент обнаружил.
Издревле MSDN говорит нам, что используя TcpClient и его метод GetStream(), нужно не забывать закрывать полученный NetworkStream отдельно, так как при закрытии TcpClient этого автоматом не происходит.
Однако, это было справедливо для .NET 1.1, а в 2.0 это уже изменили, и теперь TcpClient закрывает свой NetworkStream.
Видимо, поняли, что очень многие забывают про это, либо вообще пробегают эту строчку документации мимо.
С одной стороны, баг документации, а с другой — заплатка против утечки ресурсов, которая старый код не ломает. Так что буду по старинке закрывать NetworkStream отдельно.