1. С - Лаконичен. ПРи этом RTOS чаще всего, написана на C.
2. Да можно. Но возможность "выстрелить в ногу" - при знании языка - позволяет делать очень многое. Представьте, что вы передаете в качестве параметра, указатель.... на функцию!
3. Язык С при проверке страдает от неявных преобразований. Да, лично я считаю, что для PLC должна быть жесткая типизация, однако, если есть возможность хорошо тестировать ПО - C предоставит гораздо лучшие варианты (в ST не все добавляют ELSE в CASE условия, таких до С допускать нельзя).
4. Зато прилетает гораздо большее разнообразие С библиотек. Старые библиотеки С написаны гораздо более опытными людьми, чем современные библиотеки МЭК.
ЗЫ. B&R давно позволяет, кроме всего прочего, библиотеки на С писать. И не страдает.