The compiler sees 2 base tables before it trusts any CTE output.
base tables=2
CTE examples are tiny finite-table transforms; recursive CTEs, materialization claims, optimizer behavior, SQL dialect completeness, and database-product claims are out of scope.
Keep inputs visible
The visual shows the input rows beside the named CTE result and the body result.
inputs visible
Summary
A CTE is not magic; it is built from visible rows.