Забавно. Гугл пошел по пути превращения С++ в D, а мозилла придумала Rust, чтобы как-то совсем без GC обойтись. Что-то мне подсказывает, что в расте такие графы крутить будет довольно больно и всё равно черевато утечками памяти.
Я не знаток раста совсем, но слышал от друзей разговоры по этому поводу.
Насколько я понимаю, фундаментальная идея борров-чекера в том, что в один момент времени может быть только один владелец. Для графов объектов, где есть циклические ссылки, в rust приходится либо переходить на димнамический борроу-чекер (RefCell вроде), либо просто в unsafe, если перфоманс критичен. Т.е. даже простая структура данных, как двусвязный список или дерево с ссылками на родителей, реализуется в обход борроу-чекера.
В сложных системах со сложными графами циклические ссылки - неизбежность. Поэтому интересно, как mozilla решила это в servo. Я не знаток раста, поэтому, скорее всего, могу упускать что-либо.