Migrating SQL Server 2000 to 2012, getting old versions of Views (edit: offender SQL Server 2008 R2)
So I finally found the error, and I'll just have to cross my fingers that this was a lone occurance.

The view that kept reverting, after a sp_refreshview in SQL2008 r2, was named "qryCreateSnapshot". Then there was another view, a backup of sorts, named "qryCreateSnapshot_Old". The problem was that in the old view, the body was still "CREATE VIEW dbo.qryCreateSnapshot". I have no idea why this even compiled, but there you have it.

So when I refreshed in 2008, I guess the new view got overwritten with the old. This did not happen in 2000.

Now to compare hundreds of view names with their respective body name... ;-)

For anyone in a smiliar situation, here is a small query to find mismatches between header name and body name of a view:

SELECT     
  O.name AS HeaderViewName, 
  RTRIM(SUBSTRING(C.text, 17, LEN(O.name))) AS BodyViewName, 
  CASE 
     WHEN RTRIM(SUBSTRING(C.text, 17, LEN(O.name))) = O.name THEN 'Yes' 
     ELSE 'Nope, fix body' 
  END AS Match, 
  C.text AS SourceText
FROM sysobjects O 
INNER JOIN syscomments C 
   ON O.id = C.id
WHERE O.type = 'V' 
AND   LEFT(C.text, 12) = 'CREATE VIEW ';


I know it's not perfect, but it worked for my data and I found another ~15 mismatches.