But I just didn't quite make it. The operating system interfaces want C strings. Can't even open a file without C strings. To fully exorcise C strings, I would need to reinvent Linux. I haven't got enough lifetimes for the task.
Ended up tacking on a hidden trailing NUL to every single buffer instead.