> Of course, the comparatively easy string handling in high-level languages will really be having to do all of this same work; it's just that the language hides it from you, and takes care of the tedious details automatically
No, not really. Good string type would reduce the workload down to the hardware. Eg length-prefix strings would avoid the slow strlens for concatenation.
Also imho the horror of undefined behavior should have been underlined even more, eg:
> So C will typically let you just construct any pointer value you like by casting an integer to a pointer type, or by taking an existing pointer to one type and casting it so that it becomes a pointer to an entirely different type.
Afaik both of those are undefined behavior, so it is questionable to say that C "lets" you do that.