Perhaps you could show a larger set of before/after examples that demonstrate the improvement in usability? The improvement is not very clear yet.
Going back to your original motivation, you've ended up replacing this:
let m1 = s[...s.index(s.startIndex, offsetBy: 4)]
with this (including unfortunate but necessary parentheses):
let m2 = s[offset: ...(s.startIndex + 4)]
That example is not obviously a big win, is it?
If there was a practical way of getting something like this, in the general case:
let m3 = s[...s.startIndex.offset(by: 4)]
it starts to look convincing, I think. (cf. advanced(by:))
(Also, your last-posted code yielded compile-time ambiguities in a number of examples I tried.)