Well, I can give you my use case, though I'm sure it will scare you more than convince you. I'm working on a very old system, and I need to display a list of events and an icon for the event that happened. Someone thought it would be smart to actually "encode" them all into one string. As you can see, each string actually holds a date, but there is this seemingly random character between the date and time - that is an icon from a custom web font. So I really do not know what character I'll face there, but I know it is always in that spot. I use .charAt() to get the character for the font, and then I need to replace it with ' ' (space) and display it to the user. Sure, those characters are finite, I can do multiple .replace('s', ' ').replace('j'. ' ')... but that is not sustainable - what happens if tomorrow there is a new event type?
As I said, this is scary stuff, but I'm sure other people also get themselves into supporting old stuff.
Regex can solve a lot of things, but it makes code harder to read and sometimes (as in this case) bigger. String.prototype.with() is more elegant, easy to understand, and has a smaller footprint. Also, I'm not sure if some other case can be solved with regex, though it's very much possible.
I don't think you're going to find much support for adding new code-unit-based operations on String.prototype. Your slicing solution seems good enough to me.
It doesn't look great, it's very long and has a high chance of introducing off-by-one errors. String#with sounds like a very reasonable counterpart to Array#with. Array even already had .splice do to the same thing (x=[...arr];x.splice()), and yet .with was added.
By querying Sourcegraph I already found some usages of it:
A notable example from one of the above is to replace the character at the current cursor position with a blinker in a terminal or editor. Perhaps we can go with the more generic toSpliced but the with method just perfectly fits this use case.
Question: how many of these in practice are combined with .indexOf or similar (like a text processing loop or similar parser)? Most of those could easily be replaced with regular expressions, ones that are more than just string.replace(/^.{n}(.)/s, "f") (which is what your string.with(n, "f") mostly is)?