A>>Проблема не в буферах, а в общих для обеих операций (и не только для них — есть еще таймеры и внешнее управление) per-socket-data.
G>Не вижу проблемы. Может, неудачное проектирование?

читали остальную часть моего сообщения или хотя бы
Network Programming for Microsoft Windows?
A>>И еще — я не нашел в MSDN информации, подтверждающей допустимость одновременного использования одного и того же сокета из разных потоков. Может кто подскажет?
G>А почему нет то? Сокет дуплексный, к потокам не привязан.
То, что сокет дуплексный, не подразумевает, что один и тот же сокет можно безопасно использовать одновременно из нескольких потоков.
Programs must be written for people to read, and only incidentally for machines to execute