That is kind of strange - I just tested it on SQL 2014 and using "results" as CTE name is working fine. However, I checked the MSDN Reference for reserved keywords and "RESULT" is still not reserved, but planned to be reserved.
Anyway, obviously you have an issue with the CTE name not allowing you to have a reserved word as identifier, hence the only option you have is either rename the CTE(as you did) or surround the CTE name with square brackets, like this:
;with [KEY] (rowid) as (
select 1 as rowid)
select * from [KEY]
This is what I can figure out. Of course, any other ideas are welcome :)
-Ivan
Ivan Donev MCITP SQL Server 2008 DBA, DB Developer, BI Developer