Yes, you can extend the language with more syntax. This kind of proves my point.
If there weren't deficiencies then you wouldn't need to define more syntax, and so many work-arounds wouldn't have already been created. The deficiencies in SQL are why each big SQL database ends up creating some procedural-SQL language for use in stored procedures and triggers.
CTEs are close to what you outline above, but even then (as far as I know) you can't name that CTE and use it across multiple statements.
If there weren't deficiencies then you wouldn't need to define more syntax, and so many work-arounds wouldn't have already been created. The deficiencies in SQL are why each big SQL database ends up creating some procedural-SQL language for use in stored procedures and triggers.
CTEs are close to what you outline above, but even then (as far as I know) you can't name that CTE and use it across multiple statements.