Amaçları farklı değil, kullanma şekilleri farklı işte. C# ile UNIX için doğru dürüst uygulama yapamıyorsun. C++ ile Qt, wxwidget, GTK gibi kütüphanelerle cross platform uygulama yapabiliyorsun.
Ek olarak C++ daha low level. Microdenetleyicilerde vs. C#'tan çok, C ve C++ ağır kullanılır.
Sistem programlamada C#'ın adı bile geçmez. C ve C++ ile kernel yazılır, C#'la sağlıklı olmaz. Yani 1 dille her işi yaparsın, fakat harcanan kayağa, perfomansa değer mi, onu bilmelisin. Amacın Windows'sa hiç C++'a girmeden C# ile işini halledebiliyorsun.
Kullanım maksadına göre. Bana C++ iyi geliyor C++ kullanıyorum. C# kolay geliyorsa sana C# kullan. Hangisi ile verimli kullanıyorsan, onu kullan.