(with thanks to Tom Scott/Computerphile)
Why is there no .length() method on String?
Because "length" isn't a well-defined concept when talking about strings. If you've watched the videos above it should be clear that "length" could mean any number of things: the number of bytes, the number of scalar values in the string, the number of composed characters (e.g. a flag is one unit of the string), the number of UTF8 code units, the number of UTF16 code units, and on and on... Note that once you pick the meaning you want, it is trivial to get the length: just call countElements on the view of the string that you're interested in.
Why does String not implement subscript?
For the same reasons that "length" isn't a well-defined concept, simply indexing via integer is not a logical operation. You must pick a representative view of the string, and then use that view's index type to subscript the string.
For a more in-depth discussion see Ole Begemann’s “Strings in Swift” blog post