I think the first part of a standard lib is pretty straightforward to design. String operations, math, standard protocols, I/O are petty well understood. It gets more tricky once you get to higher levels abstraction like UI.
Tell that to Haskell.
Also, I've seen some pretty gnarly use of String in Java.