What does learning C provide that other programming languages (majority of which have some basis in C) don't teach you?
Memory management (allocation, pointers, etc)? Pipes and buffers?
They are present in other languages, and one could argue with memory management why 'every' programmer must learn those techniques even if they are never really applicable to them.
I'm really trying to think back to my C days (I haven't done it in a long time) as to why it is so important to know? What is unique about it?
C is interesting because like php it is very easy to end up with an unmanageable code base (but of course C is a lot more powerful than php).
I learnt a lot from good C code, the best C libs I have seen use a pseudo version of objects. They create a data structure to hold state and pass that as the first parameter to each function that can be used on it. Once I got my head around that I found I had a better understanding of the concept of object orientated programming.
I used ANSI C to implement most of the algorithms we studied at the university and I can say that it helped me understand them better.
Plus, an understanding of what happens on the lower level can be quite handy when debugging some software written in a more high-level language.
Scripting languages and bytecode-driven languages? Their interpreters and jitters are likely written in C.
There are exceptions. I understand that some Java-based systems are built in Java, all the way to the metal. Apple was a Pascal shop until it turned to C in the late 80s. By and large these are systems on the fringe, and the bulk of the heavy lifting today is done in C.
You should probably understand it.
You can sit in front a CAD and FEM package all day - but if you don't appreciate how the things will actually be built you aren't going to be a really good engineer.