The trouble with human text is that the complexity is always there. Unless you're working with purely-ASCII strings, which don't even always cover the full breadth of day-to-day English writing, there is inherent complexity in the representation of text, and dealing with it.
All string libraries need to make trade-offs in dealing with this inherent complexity. Some make certain common operations simpler and more terse, at the cost of utterly incorrect behavior in less simple cases. Very often, this translates to "this operation is correct in a subset of English, and broken in many scripts/languages you'll never bother testing".
Swift decided on a different tradeoff, preferring to prioritize that correctness for the benefit of a global population used to dealing with utterly broken string handling on a regular basis.
The trouble is that developers who come from other languages tend to be used to working with strings the "simple" way (e.g., indexing into strings), and often reach for more complex tools without knowing.
If you're used to indexing into strings with integers, String.Index is a horribly verbose and complex mire — agreed 100%. The thing is:
if you reach for String.Index, you're likely holding it wrong (only in that you're reaching for a more complicated solution), and you have no way of know knowing. 
Swift has really powerful Sequence and Collection algorithms that make working with strings so much nicer:
// Let's extract 'world' by offsets.
let s = "Hello, world!"
// Agreed: this is awful to write and awful to read
let startIdx = s.index(s.startIndex, offsetBy: 7)
let endIdx = s.index(startIdx, offsetBy: 5)
print(s[startIdx ..< endIdx]) // world
// Wouldn't you rather:
print(s.dropFirst(7).prefix(5)) // world
// ^gets you much closer to "Hello, world!"[7:12] in Python, while maintaining correctness
Swift.Index has to exist and be exposed in order for these algorithms to be possible to use, but that exposure means that people search for "swift string index" and fall down the rabbit-hole of the complexity of API where generic Sequence and Collection algorithms are a huge improvement in readability (and writability).
It would be great to try to figure out ways to make these operations easier to discover by default, and have the Swift compiler be able to better help surface these in some form or fashion (along with more-discoverable documentation). But we don't have to throw out the baby with the bathwater.