This left me to question where C++ comes into play now-a-days?
Legacy code.
Embedded systems (C/ASM though, not C++)
Device driver development.
OS/Kernel development (might not be optimal to write, say a page handler in Java for instance),
are some areas that springs to mind directly. You probably do not want to program a PIC using C# or Java.
As for learning, higher level languages will of course be good for learning things like abstraction, encapsulation and so on. Basic programming concepts like sequences, selection, iteration, recursion as well. Quick and easy way to learn about algorithms and algorithm development as well I guess.
C/C++ are powerful languages, but as someone pointed out, also opens you up to huge risks. It hands you a loaded gun, but offers no protection if you aim it at your own foot and pulls the trigger. (Just see how many people who think arrays and pointers are equivalent in C for instance, or who depends on undefined behavior, or knows nothing about what a sequence point is, and so on). In that regard alone it makes sense at least to start people off on easier, more protective languages when teaching programming.