So that would mean either you abolish string literals in freestanding (making C worse) or you have a separate type for these string literals from the type for a expandable string.
Now, Rust pulls off the latter in my view fairly elegantly, but that takes a lot of sophisticated type features in the language including a DeRef and several AsRef implementations. In Rust these are general features open to other types, C could special case them instead, but that's still a lot of engineering for a small feature.
The result is definitely not the elegant language which can be described in a slim book. Maybe it's better anyway, but it's not C.
You can easily implement a stack allocated C++ string:
https://forums.4fips.com/viewtopic.php?f=3&t=1075
You can also wrap a const char* in a string_view which has a length.
Still. Why isn't there a good quality library or set of libraries that would cover these features is my question.