Невозможно подключиться к сокету TCP с портом 80 в Silverlight. Поскольку вы заявляете, что существует ограниченный диапазон портов (4502-4534), к которым вы можете подключиться, и все.
Да, брандмауэр будет проблемой, так же как и в других приложениях, таких как удаленный доступ RDP, брандмауэры, задействованные между клиентом и сервером, должны разрешать соединение через один из разрешенных номеров портов.
Скорость передачи данных во многом зависит от ее кодирования. (Я не думаю, что AJAX здесь на картинке). В конечном счете сокеты с двоичным кодированием имеют тенденцию быть немного быстрее, особенно для частых небольших передач. Принимая во внимание, что HTTP страдает с немного большими накладными расходами, тем не менее, у вас гораздо меньше проблем с брандмауэром.
Если у вас нет действительно веской причины использовать сокеты, вместо этого используйте протокол на основе HTTP. Если вы достаточно хорошо абстрагируете эту часть своего приложения, вы всегда можете поменять ее местами позже.
Рассматривали ли вы использование WCF PollingDuplex Channel? Это позволяет вам создать «толчок» из механизма сервера, придерживаясь HTTP. Кроме того, большая часть сантехники сделана для вас.