Если используется версия 4 Boost.Thread (выставляется с помощью макроса), то вызовется std::terminate и все приложение навернется. Аналогичная ситуация будет при использовании std::thread вместо boost::thread.
Чтобы std::terminate() не вызывался, надо явно вызывать t.detach()
«Boost.Asio C++ Network Programming». Глава 5: Синхронное против асинхронного