Как по мне, С — это тот язык, который хорошо даёт понять, как программа исполняется. Работа с памятью, в том числе. Мне сложно оценить степень нужности именно С для понимания того, что на самом деле происходит, когда работает программа (я изучил ассемблер раньше С), но, как мне кажется, изучение С — прекрасный вариант для того, чтобы 1) понять лучше все С-образные языки 2) хорошо понять, что такое программирование на самом деле. (Понимаю, это всё спорно. Это было моё имхо).
Как минимум, понимание ссылок и указателей уже само по себе неплохо.
Я уж молчу, что embedded программисты только на С и пишут. Или С++.