On the Boost discussion group there is a discussion started about High Cost of MS "Safe" STL for Release Builds. It is an interesting look at the massive differences between "safe" and "non-safe" options in Microsoft STL.
I don't think there has been a clear look at the efficiencies and inefficiencies in the MS-STL implementation, especially with the different options (iterator debugging and safe options). There have been some looks at comparing different STL implementations but it always difficult to do a good comparison, the main problem being comparing the correct "latest versions".
Going back a while I was justifying the use of STLPort instead of Microsoft STL supplied with Visual Studio. Simply, it was a performance thing with both memory and efficiency. Certainly with the new STLPort visualisers for the Microsoft debugger it is an even playing field for ease of use.
You can read those here:
* Visual Studio 2005 - Lets Break Everything! - a bit about how to switch off some of the more annoying "features".
* Development - STLPort versus Microsoft STL performance - A quick summary of my observations on the performance in a real-world complex application.
* More on STLPort and Microsoft STL performance - A little more background.