Good question. The issue is accessibilty from managed code. I have no problem leaving everything in MC++ but there are hordes of .NET programmers who inist on C# or VB and believe it or not call C++ and MC++ "dead" languages in the face of the CLR-) There may be "consumers" of said MC++ code that want to access that code from C# or VB.NET so I show how to do it.
Also, previous to Everett, there was no forms designer in VS.NET so it made sense to "port" the C++ code to managed and then use C# to quickly write up the UI because of its WinForms Visual Designer and then call from it to the MC++ code.
Its not me thats pushing C#. Its Microsoft.