Какая-то ерунда. Не получается из процедурного макроса сгенерировать декларативные, как ни кривляйся: вывод пустой. При том, что текст есть и обрабатывается на выходе парсингом.
Было бы неплохо посмотреть MRE, гонок данных в safe Rust быть не может (если не нарвался на ошибку в компиляторе, что маловероятно), а вот от логических гонок (race condition) компилятор не защитит.