Вот из
этого ответа на SO у меня сложилось впечатление, что:
— Запрещены именно одновременные вызовы всех функций сокета наподобие async_write и async_receive из нескольких потоков. Тут надо синхронизировать обращение к данным функциям либо при помощи strand'а, либо при помощи своих собственных примитивов синхронизации.
— В то время как сами хэндлеры могут быть и не обёрнуты в strand'ы.
Я прав?