Такое впечатление (от просмотра логов), что эта программулька берёт порты наугад. То есть для установки соединения с сервером используется 4000, а вот при переписке с конкретным человеком - случайно...
У меня сейчас открыт только 4000 для аськи в 2 стороны, и работает.
Видимо, работа идет так: когда клиенты не сумели связаться напрямую, они лезут через сервер, и сообщение все-таки доходит. В логе появляется запись о попытке пробиться напрямую, например:
В любом клиенте можно указать сервер и порт, я сделал login.icq.com на порт 4000. Что мне не нравится - так это лишние входящие и исходящие пакеты. Если бы можно было сказать аське, чтобы всегда ходила через сервер, их бы не было...