C# хорош на верхнем уровне приложений. На нижнем практически много проблем с Interop. Программировать Win API, связь с MFC, DLL. Тут C++.NET незаменим как стыковочный язык. Попробуйте создать DLL, которая построена на C runtime - C# не потянет!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)