В стандартной библиотеке не хватает интеллектуального указателя с встроенным счетчиком ссылок (make_shared/enable_shared_from_this не совсем то) и Hazard pointer-ра. Однако они есть в Boost, и что если их перенести в стандартную библиотеку вслед за shared_ptr и weak_ptr ?
В текущем стандарте std::terminate_handler обработчик по умолчанию аварийно завершает весь процесс (вызывает std::abort) . Это вполне приемлемо для одно-поточного приложения, но не для много-поточного.