Correlated subqueries have always been permitted in recursive common table expressions. Your test script works fine on SQLite 3.8.3 (the release from 2014-02-03 which first introduced recursive common table expressions). The restriction applies to the *recursive table* - the table that is being computed - "y" in your example.