A modern string handling library would have to handle different character sets and different encondings as well, so there's already metadata to be stored with every string.
If memory efficiency is a problem for you, multibyte encodings is a much worse problem than storing string length. But UTF-8/16 is here to stay, there is simply no competition. I think we have to accept it.