It doesn't just buy safety. It also makes it possible to include null bytes inside of strings.
Null is always 1 byte minimum so at best you save size_t-1 bytes per string. Ignoring clever structures like LEB128 varint length.
This is a classic case of "simple is actually complex". How many billions of dollars has null terminal strings cost? Hope that 3 bytes of overhead per string saved is worth it.
No matter how you slice it, null termination was a mistake.