> The point of this pull request is for `std.conv.to!string` to be consistent,

What's inconsistent about `to!string`?

> and for the appropriate partner for `toStringz` to be module local.

That would be needless code duplication. `to!string` already does the conversion in the other direction, and `toStringz` is rather particular in the type of conversion it's doing, which is why it's its own thing (also, I believe that `toStringz` predates `std.conv.to` by quite a bit). I can understand wanting the functions for converting to and from `inout(char)*` to be in the same module, but `std.conv.to` is the general function for conversions in Phobos, so it doesn't live in std.string, which only does stuff specific to strings, whereas `toStringz` is string-specific. Also, the conversion that `toStringz` is doing needs to be clear where in the code where it's used due to its unsafe nature, whereas converting in the other direction does not require that (unless you're doing what the implementation here is doing, which is usually not what you want to do and shouldn't be encouraged).

So, I think that you're just going to have to live with the fact that there is no opposite to `toStringz` in std.string. We try and organize Phobos so that it's straightforward and understandable where everything is, but we're not perfect about it, and there are always grey areas and areas where intelligent people can and will disagree.