CATCH block is triggered when it should not
It looks like the pre SQL Server 2012 behaviour is a bug.

I infer this from this Connect article: 

https://connect.microsoft.com/SQLServer/feedback/details/712003/sql-server-2012-error-in-exception-handling-mechanism

I could be wrong of course...