Bom, pelo que vi do .NET, acho que é 1000 vezes mais fácil seguir as regras do C#, e criar código novo em C#, que tentar modificar o seu código em "Managed C++ ". Já acho C++ complicado (e isso que trabalho com C++ há mais de uma década), imagine o “Managed C++”.
Por exemplo, é tão complicado portar uma biblioteca em C como o OpenSSL para o “Managed C++” que é mais fácil reescrevê-la para C# (aliás, o pessoal da BouncyCastle fez o porte de sua biblioteca Java de criptografia para o C# com relativamente poucas dificuldades.)
Por isso, é a própria dificuldade de uso que irá restringir um pouco o problema. (Será que não existe algum setting no .NET para proibir a execução de programas em Unmanaged C++ e Managed C++, assim como há um setting no JSP 2.0 para proibir a compilação de scriptlets ? Isso fecharia o tal buraco de segurança (pelo qual podem passar vários caminhões carregados, como comentou o sr. Gosling)