> I can't think of a reason to use byCodeUnit and then try to modify the original array.

To modify said array? Seems like a pretty common usecase:
```D
//Jeopardy:
auto s = "hello world!".dup;
foreach (ref e; s.byCodeUnit().filter!isVowel())
    e = '?';
writeln(s); //prints "h?ll? w?rld!"
```
I don't really how ref could *not* make sense. By "definition", `byCodeUnit` is designed to give you direct access to the raw array, right?