потому, что Си — это классика жанра, а почему многие любят классику вопрос риторический, кто-то не любит модных тенденций, кто-то лениться просто ну и так далее… А если говорить о технической стороне дела, то уже написано что есть
а) накладные расходы
б)не ясно или нет уверенности что эти накладные расходы окупят своё сущестование, то есть какие-то фишки С++ уместны, а какие-то «дороги» для контроллера или задачи. RTTI например тежеловат
г) если работает команда, то есть вероятность что, кто-то захочет попробывать все эти новые плюшки, то есть открывается яшик пандорры, оказывается например, что RTTI съел половину памяти МК.
д) если в Си явно было чётко видно что вот тут вызывается функция INIT(), то в С++ этого явно не видно что вызывается конструктор, да видно что есть оператор new, но что там в этом конструкторе сложного объекта понапихано — нужно смотреть, а при просмотре ввидишь что вызывается конструктор предка и конструкторы членов класса. То есть Си он более ассемблерный, за каждой инструкцией более проще увидеть во что это выливается на ассемблерном уровне.