Спасибо за объяснение, но что мне эти детали дают как пользователю класса ip::tcp::socket? Ведь то, что
Когда делаете async_write, то делается обычная неблокирующая запись в сокете в потоке, который делает этот async_write, и в специальную очередь помещается структура с хендлером
никак не говорит о том, как реализован конкретно boost::asio::ip::tcp::socket, и какие требования накладывает на своё использование в результате этого. Он может как требовать синхронизации, так и не требовать -- всё зависит от того, как автор(ы) библиотеки подошли к данному вопросу.