We are working to revise the design of String for Swift 4. This includes a variety of changes, including:
https://bugs.swift.org/browse/SR-4003 Optimize the representation of String
https://bugs.swift.org/browse/SR-4004 Create a shim to ICU
https://bugs.swift.org/browse/SR-4006 Enable String to store Latin1 characters with 8-bit encoding
https://bugs.swift.org/browse/SR-4007 Implement Small String optimization
I am filing this issue to track the overall effort for the purpose of ABI stability.