This was done because we had one platform (MSVS) which couldn’t do thread-safe static initialization at all. Since we couldn’t use it there, we made our other platforms match.
Since then, thread-safe static initialization has been standardized in C++11, and eventually, MSVS caught up with the times.
In light of our switch to MSVS 2015, which does properly support thread-safe static initialization, I wonder if we can lift this restriction and write now-standard C++.