Нет, они появляются с целью "два дня потерять, потом за пять минут долететь". В целом за счет них, руками настоящих программистов (по твоей терминологии), минимизируют необходимое кол-во этих самых настоящих программистов. Все встраиваемые операционные системы как минимум избыточны в каждом конкретном случае их применения. Любая ОСь, фреймворк или библиотека избыточны и, как минимум, зря жрут ресурсы, а как максимум еще и добавляют потенциальных ошибок и уязвимостей системе. Но они ускоряют разработку и "делают доступным" для ненастоящих программистов то, что могут только настоящие...
ЗЫ: Ты почитай стандарты. Если хочешь хоть как-то сертифицировать код, то (что больнее всего было мне):
- данные декларировать на самом низком из возможных уровне областей видимости
- не использовать динамическое распределение памяти (как исключение - можно при инициализации)
- указатели нельзя (как исключение - не дальше одного уровня разыменовывания)
- указатели на функции запрещены
- бесконечные циклы запрещены (совсем, даже главный нельзя), рекурсию (и неявную тоже) нельзя
- весь проект должен компилится без единого варнига на самых "пароноидальных" настройках (статические анализаторы тоже не должны ругаться)
- мертвый(неиспользуемый) код нельзя.

А если прочитать хотя бы мисру целиком... ну диспетчер задач под конкретный вычислитель можно написать, а вот прямо операционную систему... нет, это фантастика.