Почему ?) Корутины это просто юзермод абстракция над обычными потоками, если понимать как это работает, то код можно писать практически так же
корутины выглядят как синхронные функции, но на самом деле асинхронные. Асинхронность + лайфтайм модель С++ = высокий шанс отстрела ноги. В С#, Откуда пришли текущие корутины таких проблем нет, потому что там модель лайфтайма как-будто все переменные это std::shared_ptr