Probabilmente il vero problema è che si insegna il C++ partendo dal C. Come dire insegnare l'italiano partendo dal latino. Di fatto ormai sono linguaggi diversi e la retrocompatibilità è più una questione di comodo che tecnica.
Con questo non voglio dire che il C sia obsoleto, tutt'altro: solo che la parte C del C++ andrebbe usata (come suggerisce Stroustrop) solo per interfacciarsi con codice legacy (vecchio e non modificabile), oppure se si è compreso abbastanza bene le vere problematiche del C++
Per come la vedo io la prima cosa che andrebbe insegnata in un corso di C++ è la classe std::string per gestire le stringhe.
Purtroppo spesso il linguaggio si evolve più rapidamente dei professori e restare al passo non è per niente facile.