Похоже, четкого ответа на этот вопрос пока нет. Хотя, можно порассуждать. Вообще говоря, все зависит от того, что тебе от этого дерева надо.
Операции изменения (внесения, удаления, перемещения) на Nested Sets в чистом виде (не Nested Intervals) требуют пересчета значительной части дерева; на больших деревьях это будет несколько дольше, чем при использовании списков смежности. Да и процедуры внесения изменения не столь тривиальны, как в обычных списках смежности.
Если тебе часто нужно искать только непосредственных потомков или выбирать всех родителей для некоторого узла, то такие операции на Nested Sets программируются довольно легко, но во многих случаях на таких операциях при обращении к таблице не будут использоваться индексы; они используются, как известно, если условие where покрывает не более 30% таблицы, при выборке детей и особенно при выборке родителей условие в where запросто может покрыть более 30% таблицы. При выборке непосредственных детей их количество обычно меньше 30% общего числа дерева, но при использовании Nested Sets индекс все равно скорее всего использоваться не будет, потому что у этих детей могут быть еще свои дети, и общее количество потомков (не только непосредственных) для данной вершины запросто может быть больше 30%.
Зато Nested Sets очень хорошо использовать, если тебе нужно выбирать всех потомков для заданной вершины, не только непосредственных потомков. Такая операция при использовании Nested Sets и программируется проще и выполняется, видимо, быстрее.
Nested Sets так же хорошо использовать, если основная операция для работы с деревом - это не выборка детей/родителей, а проверка: является зли заданная вершина родителем/ребенком некоторой другой заданной вершины. Если хорошо продумать схему обработки данных, то многие задачи, в которых раньше требовалась выборка из таблицы, можно свести к такой проверке.
Так что, на мой взгляд, использовать ли Nested Sets - это дело, скорее всего, вкуса. В чем-то они лучше, в чем-то быстрее, а в чем-то дольше
Лично я их использую, потому что я к ним привык и у меня есть библиотека функций для работы с такими деревьями. Хотя, видимо, эту библиотеку нужно доработать, что бы она могла работать с деревьями, хранищимися разными способами...