A new language will eventually acquire its own grungy legacy just like C++ did, unless that new language aggressively breaks backward compatibility.
I think the best practice is for people to stick to a subset of safe patterns in mature languages. For C++, that's probably the C++ Core Guidelines: