Я полагаю, что большинство людей никогда не используют рекурсивные структуры такой глубины. Поскольку самые простые реализации сериализации являются рекурсивными, вы увидите их только.
На вашем месте я бы не использовал открыто рекурсивную структуру данных здесь. Вместо этого я нумерую каждый узел и использую таблицу ссылок, которая эффективно переводит число в узел с этим номером. Каждый узел будет ссылаться на другие узлы (например, свои дочерние) через эту таблицу, используя числа. Простое свойство сделало бы это синтаксически простым. Помимо этих свойств, никакой код, имеющий дело с обходом дерева, не должен был бы изменяться. Конструктор узла должен будет выделить число и поместить себя в таблицу ссылок, что тоже тривиально.
Таблица ссылок может быть просто списком узлов, где индекс в списке служит номером узла; Списки Python, кажется, имеют эффективный доступ по индексу. Если важна скорость вставки, я бы выделил достаточно длинный список, заполненный None; это не заняло бы слишком много места. Если бы узлы хранили свои собственные номера, эта структура была бы дешевой для прохождения в обоих направлениях.
Как видите, травить и расщеплять такое дерево было бы тривиально на любой глубине.