因为你说的那些出现得更晚。
不能因为出现了新的就把旧的删除了。就好比吃5个包子吃饱了就说前四个包子没必要吃。
更何况那些属于C语言标准定义的。C++不可能跨语言执法删除C的东西。除非不想保证对C的兼容性。
对语言来说一旦出现,就会有大量的代码基于它,你不可能废掉世界上那么多代码,自然也就不能随意删除语言特性。