Ich will ja gar nicht bestreiten, dass das wichtiges und nützliches Wissen ist. Es ist bloß für einen Anfänger kein notwendiges Wissen. Und ja: Wenn einer anfängt, soll er erst einmal sehen, wie er mit einer IDE zurecht kommt, die sich leicht bedienen lässt. Für Flüche & Flames ist später immer noch genug Zeit.
Und wie du selbst sagst: Du hast schon die Erfahrung gemacht, dieses Wissen sinnbringend einzusetzen. Nur: Ein Anfänger muss, soll und kann (!) nichts lernen, was in irgendeiner Situation sinnbringend ist. Er soll, muss und kann lernen, was programmieren grundsätzlich bedeutet (das hat wenig mit gcc-Optionen zu tun), wie man grundsätzlich Programme in C schreibt (auch auf einem MS-Compiler) und wie so ein Computer in der ausgesuchten Programmiersprache denkt. Und alles andere, was er nebenbei lernen muss, um dieses Ziel zu erreichen, gilt es zu reduzieren.
Sonst hat man am Ende ganz viel Ahnung von Tools – und kann kein Programm strukturieren, welches mehr als 1000 Zeilen hat. Das kann es echt nicht sein.
Ich erlebe es übrigens bei Objective-C-Programmierern, dass sie später C lernen, weil das irgendwie "grundlegender" ist. Mal abgesehen davon, dass das konzeptioneller Schmarren ist (und damit deutliches Unervständnis zeigt), siehst du dann als Beispiel total FREAKIGEN C-Code, der seine FREAKIGKEIT vor allem Synonym für völlige Unleserlichkeit ist und der definitiv mindestens drei Bugs enthält.
Wie gesagt: Ich will beim Programmieren ein Ziel erreichen. Und dazu bediene ich mich der Mittel, die mich leicht und schnell an das Ziel führen. Wenn ich mal wieder einen Beweis für meine Männlichkeit benötige, schalte ich indessen den Rechner aus, litere mich in einer Bar bis 04.00 Uhr zu und erschrecke dann 17-jährige Mädchen.