C y C++ son idiomas diferentes, blababla lo sabemos.¿Por qué C++ es compatible con C? ¿Por qué no hay algún lenguaje C++ "puro"?
Pero si esos idiomas son diferentes, ¿por qué todavía es posible utilizar la función como malloc o gratis? Estoy seguro de que hay todo tipo de cosas polvorientas que C++ tiene debido a C, pero dado que C++ es otro idioma, ¿por qué no eliminar esas cosas para hacerlo un poco menos hinchado y más limpio y claro?
¿Es porque permite a los programadores trabajar sin el modelo OO o porque algunos compiladores no admiten características abstractas de alto nivel de C++?
Un poco de historia C++: http://www.hitmill.com/programming/cpp/cppHistory.html – miku