> I would personally prefer to use various engineering practices such as static and dynamic analysis, unit tests, etc rather than change programming languages.
There is no static and/or dynamic analysis out there that effectively stops programmers from writing UAFs (to name one especially problematic class of memory safety problems) in C++ over and over. This is despite decades of work on it. The language itself is fundamentally hostile to analysis.
I also dislike "one language to rule them all" thinking. Web app and network backend developers shed that mentality a long time ago, and the industry is better for it. Java, Ruby, PHP, Python, Go, JavaScript, Scala, etc. are all used on the server where their niches are strongest, and this is great! The industry would have been in much worse shape if they all had tried to stick with C++.
I agree with your other points, though--the choice of programming language has to be balanced among many factors. Sometimes security against RCE doesn't matter or isn't relevant, and the crashes caused by memory safety problems can be lived with. But I don't think we should pretend that C++ is safe, or as safe as other languages. It just isn't, and no tooling so far has been able to make it so.