Стек GC корней можно дублировать в линейной памяти и просматривать там
Это значит - продублировать стек (aka shadow stack), при этом его может потребоваться динамически расширять (и сжимать), вероятно, используя тот же GC. Что уже звучит довольно безумно. 😃
Но это ещё не всё - каждый раз, когда перезаписываем ссылку на стеке функции, её нужно перезаписать и на shadow stack. Чем это лучше reference counting - не ясно. Учитывая, что придётся ещё и делать mark.