I presume the majority of the point of standardizing is in controlling what implementation third-party libraries use. It&#x27;s not like libraries are grabbing opaque String* handles from some String.new-alike in libc, where all the strings in your final linked program could be replaced with a better implementation of the same ADT just by linking in a better String.new.<p>The C standard says that &quot;strings&quot; are examinable buffers of bytes you can do arithmetic to and stream until NUL—and thus, every single library that uses C strings ends up baking in a bunch of pointer arithmetic and NUL-checks on buffers of bytes.<p>It doesn&#x27;t matter how optimized your own code&#x27;s string implementation is if 99% of your time is spent in, for example, OpenSSL&#x27;s string implementation.