STL won't be more thread safe than it is now - performance reasons.
Cool template way to make anything synchonized in C++11 can be this:

template<typename T> 
class Monitor {
private:
  mutable T mObject;
  mutable std::mutex mMutex;
public:
  Monitor(T aObject = T()) : mObject(std::move(aObject)) {}

  template<typename F>
  auto operator()(F aFunc) const -> decltype(mFunc(mObject))
  {
    std::lock_guard<std::mutex> lock(mMutex);
    return mFunc(mObject);
  }
};