I've always understood that CTEs were similar to derived tables in that they were simply logical constructs that the optimizer would turn into a query plan. In explaining CTEs, the analogy I use most often is that they are like a view that persists only for the duration of the single query in which it is contained. The use of a CTE does not, by itself, require any tempdb resources. A query plan might spill over to tempdb on a sort or something, but not merely because a CTE was used in the query.
While I hold these truths to be self-evident, I've just spent an hour or so online trying to find any statement to this effect in BOL. I can find articles and questions answered in forums, but nothing from Microsoft itself. I've also taken a look at the SQL Server 2008 Internals manual but can't find anything.
Could someone point me in the right direction for documentation that a CTE is like an inline view?
P.S. I will be continuing my search and will post an answer if I find it first.
Against stupidity the gods themselves contend in vain. -- Friedrich Schiller
Stop, children, what's that sound? Everybody look what's going down. -- Stephen Stills