Почему именно Си и Асм — языки для программирования МК и аппаратных средств?
Потому что C и Asm дают полный контроль над ресурсами и позволяют скомпилировать минимальный по объёму код. Попробуйте запустить эрланг-машину на микроконтроллере с 64 килобайтами памяти или обеспечить точную выдержку временного интервала если лисп-интерпретатор решил заняться сборкой мусора.
чем меньше абстракций, тем меньше итоговый файл, тем меньше требование к железу. На С и asm можно получить готовую программу, которая займёт места меньше, чем "Hellow World" на других языках