There is nothing special about C and C++, other than:
- C is a remarkably unambitious language. Its goal is/was more or less to create a portable assembly language. Anything more advanced than that, has no place in the language. As such, language-wise there is nothing to learn from C. It's in no way a difficult language, but it requires a lot of work to achieve even the simplest things. And it is of course very error-prone and unsafe compared to higher level languages.
- C++ is a remarkably complicated language. It has had a lot of different influences over the years, and has stolen ideas from a wide range of languages and programming paradigms. And then in the last decade or so, this has been topped off by the C++ community pretty much inventing their own paradigm (generic programming). As such, C++ has come up with some pretty clever solutions to a lot of common (in all languages) problems. As much as people like to look down on C++, I frequently miss it when working in C#. There are a number of high-level techniques and abstractions that are simpler, cleaner and more elegant in C++. So from a pure language perspective, I think C++ is worth learning. (And I wish Javas or C#'s designers had bothered to do that, rather than basing their languages on what can be more accurately described as "C with classes".
But I think what you're getting at is that learning these languages will give you a better understanding of "what's going on under the hood".
I can see the point in that. C/C++ gives you pointers which can be almost mapped directly to the underlying memory addresses. Learning these languages certainly gives you a kind of intuition about what's going on underneath. (But as always with intuition, it's not always correct. One of the most common mistakes in C++ is to assume that "pointers are memory addresses". They're not. In many ways they behave similarly, but pointers obey a lot of additional constraints that may or may not exist in the actual hardware.)
So for these things, why not go directly to the source? Learn assembly, learn about the CPU itself, learn about compilers.
All of the above is worth learning, and will make you a better programmer. But learn C++ for the sake of the language (it's not beautiful, but there are lessons to be learned from it), and learn about all the underlying mechanics (compilers, the hardware you're running on, the CPU) by studying those directly.
But whatever you go for, definitely diversify. You should learn the languages you actually work in, obviously, but don't stop there. Learn something else, almost regardless of what it is. More languages, or a better understanding of the underlying infrastructure, it'll all make you a better developer.
Finally, don't think of C/C++ as the "black belt". C++ in particular may be one of the hardest languages to master, but that doesn't mean those who know it are the best programmers. Far from it.