Really? You can't safely derive from it, can you? You can't add new member functions therefore, right?
Enhancements via function templates hardly can be used for praising a class design. On the contrary, they are global functions and I share the opinion that global functions mostly is poor OOP and the need for those functions show the heavy shortcomings of this class.
Heh, when you stated that "the basic_string class actually is a poor string class", I actually thought that you had its over-abundance of member functions in mind. Apparently not. Read:
Bookmarks