There was a time (before C++11) when not even local static variable initialization was guaranteed to be thread safe. And there are a few other reasons why it is discouraged: http://google-styleguide.googlecode.com/svn/trunk/cppguide.x...
So it's basically defensive programming, but I agree with you that it's probably too defensive nowadays.