The return type should still be the correct string type, because there is more than 1 return path, so `R` is the only compatible type between `null` and `path[i .. path.length]`. So we're still fine here.

One possible issue this introduces is that we now have different template instances for `string` and `char[]`, whereas before, they used the same `inout(char)[]` instance. But that's a "issue" that's *way* outside of this pull's scope.