AFAIK the STL is free to use any algorithm they want as long as it's O(n log n).
[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n429...
The standard doesn't seem to say "or better" here, but I know that in other places it does (or least used to say something similar).
Note that this wouldn't be true if the standard said that it has to be Θ(n log n).
If something is O(1) it's also O(n) and O(n!), since it's an upper bound.