Хочу заметить, что для компенсации минусов используется мощь ООП. Конечно это рождает еще минусы =) Синтаксис: Очень прост. Выучи его просто.
Операторы присваивания: = - присваивание; == - сравнение. Чего не понятного? А где логика в := ?
Опасность макросов преувеличена. Видишь ли. Вам дали в руки ламборджини крайней модели. Если водитель грамотный, то он ее не раздолбает. А если идиот, то он получит премию Дарвина после первого поворота.
Насчет преобразования согласен. Но это компенсируется динамической идентификацией типов. На всякий существует инструмент динамического и статического каста.
И так далее по тексту.
Все "обвинения" высосаны из пальца. С++ мощный инструмент для знающих что делать и как делать.