CTE или вложенный (некоррелированный) подзапрос обычно не имеют другого плана выполнения. Использование CTE или подзапроса никогда не влияло на буферизацию промежуточных запросов.
Что касается ссылки Тони Роджерсона - явная временная таблица работает лучше, чем самосоединение с CTE, поскольку она лучше индексируется - много раз, когда вы выходите за пределы декларативного SQL и начинаете предвидеть рабочий процесс для движка, может получить лучшие результаты.
Иногда преимущество более простого и более обслуживаемого запроса со многими многоуровневыми CTE вместо сложного процесса с несколькими временными таблицами перевешивает преимущества производительности процесса с несколькими таблицами. Подход, основанный на CTE, - это отдельный оператор SQL, который не может быть так тихо нарушен случайно закомментированным шагом или изменением схемы.