You deal with strings as bytes (opaque data) (edit2: didn't really mean bytes here. see child comments) more often than strings as text in systems programming, basically.
Also, you'll want to write stuff like fast parsers in Rust. For a parser you're usually doing ascii matching anyway.
Swift hides the actual encoding of the string from the user. That's not something we can do in Rust.
> I get why you wouldn't make it the default in Rust
That's all I'm saying? I'm totally for having EGC operations there, I don't want them in the default operations. "it just wouldn’t do to have expensive grapheme segmentation operations all over your string defaults"
Basically, Rust tries to keep costs explicit, unlike languages like Python. This would be against that philosophy.
Edit: I'd also like to point out that indexing by code point or grapheme is a rare operation in Rust anyway.