Потому что с плюсами на практике очень больно работать. Не в плане выразительности, а в плане того что любое неверное движение может обернуться UB, проявляющимся через какой-то хайзенбаг пару месяцев спустя.
С++ чуть ли не самый выразительный язык. Если сравнивать по количеству семантики на сточку - это самый выразительный язык во вселенной.
Никаких УБ там нет. Язык не продуцирует УБ, они являются свойством мироздания. Ты либо управляешь средой исполнения и можешь получить УБ, либо не управляешь