If you let junior programmers fuck up your codebase that much, that's not the junior's fault. You should do code reviews.
I lead a team of six, including some junior devs.
How initialization occurred (static or otherwise) was just something we made an explicit check off item in code review.
So, C++ can be a wonderful tool in proper hands, but it is much easier to misuse than C in an embedded context.