in c++ musst du kein oop nutzen und kannst dich voll und ganz auf das prozedurale beschränken. das ist bei c# anders, da es vollständig über oop arbeitet (wenn man das so formulieren kann ^^ ich den du weisst was ich meine).
und klar ist das mit den pointern und zeugern kein leichtes kapitel, aber das wäre halt was für leute, die die grundlagen verstehen wollen oder sowas einfach gerne auch mal in handarbeit erarbeiten wollen. eben die grundlagen vor den weiteren ausbaustufen des proggens. nicht um sonst lernt man in der schule und im studium zuerst was über prozedurales arbeiten, dann das arbeiten mit pointern und klassen und dann erst den oop aspekt.
klar kann man in c# auch "prozedural" arbeiten, aber dann hat man von anfang an das verständnisproblem, wieso da jetzt ne klasse aufgebaut wird, wenn ichs doch garnich brauch. wenn dort die main eine methode und keine funktion ist. wieso so ein umstand, wenn ichs doch garnich brauche? diese fragen ergeben sich mit späterem wissen natürlich von alleine, aber am anfang verwirren sie mehr, als das sie helfen. das geben sogar buchautoren zu bedenken ("ich muss leider schon zu oop vorgreifen, um verwirrungen zu vermeiden..." sinngemäß).
und da man bei c++ eben auch c (nix mit oop) proggen kann (konsolen ausgaben, rein prozedural usw, halt einsteiger kram), finde ich persönlich es eine gute empfehlung. zumal man mit den "verhassten" pointern eben auch mal versteht, wie diese container-klasen überhaupt realisiert werden, bzw, wie das intern so in etwa abläuft. sicher nicht unwichtige erkenntnisse, wenn mans richtig angehen will ^^