Отступ может задаваться стилями ul, в том числе браузерными по умолчанию, и накапливаться за счёт вложенной DOM-структуры. Level не является единственным способом создания отступа.
Почему отступ дерева остаётся после удаления level
Отступ может задаваться стилями ul, в том числе браузерными по умолчанию, и накапливаться за счёт вложенной DOM-структуры. Level не является единственным способом создания отступа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
У рекурсивного списка убрали JS-расчёт marginLeft по level, но каждый узел по-прежнему содержит вложенный ul. Визуальные отступы сохранились. Где искать причину?
Ответ
Отступ может задаваться стилями ul, в том числе браузерными по умолчанию, и накапливаться за счёт вложенной DOM-структуры. Level не является единственным способом создания отступа.
Посмотрите computed styles для padding-inline-start, margin и правил родительского контейнера. Временно отключайте по одному свойству, чтобы установить источник. Если нужна единая схема, либо используйте естественную вложенность с одним CSS-правилом, либо плоский список с явной глубиной, не смешивая оба подхода случайно.