RoboMoon,
I'm not at all a roboticist, but I can tell you what I know about the advantages of C, and the advantages of learning it.
For the situation discussed above, where asm routines may be needed for performance; many C compilers will also let you wrap hand-optimized ASM routines in standard C function-calls. These functions will look, and be called in your code, just like any other function written in C.
This also allows you to have a separate function of the same name that contains only C, and automatically choose which to compile into the rest of your code (using the C pre-processor). One reason it is good to have your asm-optimized C functions written in plain C as well, is that the asm will be specific to the processor, while the functions written in plain C code will be portable. It is also nice to have an easy-to-follow plain-C routine to act as the standard for the asm code.
Though many of the more modern languages (including C#) are based on C (C is sort-of the "Latin" of many modern languages) knowing C# may not help you much in learning C. The most powerful things in C, such as pointers, are also the most difficult to fully master, and the modern languages often seem to include, as one of their primary aims, completely shielding coders from these more difficult constructs.
This shielding, however, also tends to put a very high barrier between the coder and the hardware. No problem if you are coding database applications on a server with browser-based user interfaces. In fact, in that situation it is a net advantage, since you can't hang yourself with rope you don't have... On the other hand, this inability to get right to the hardware --while an advantage for high-level coding-- is likely to be a huge disadvantage for robotics. This is primarily just a gut guess though, since, as I've said, I'm not (yet) very knowledgeable about robotics design.
Finally (and I can vouch for this one), when you learn C, you will have a huge advantage in learning the higher-level (more modern) languages. This is because, C is the original syntax that most of those modern languages are modeled on. Many of the constructs, which C does at the hardware level have merely been abstracted in the more modern languages. In this case, when learning the modern language you will recognize in the higher-level-construct, the set of low-level operations that went into providing it.
In short, the time you spend learning C is a win-win. You will be able to design without restrictions at the low level required (i think) by robots, and you will have a basis-understanding that gives you insight, which will make learning the newer higher-level languages easier.
-John