Yeah I get the justification for the lack of .length, but they eventually added it for a good reason too, which is that anyone calling that doesn't really care and those who do care can use something more specific.
The other aspects of strings are also centered around things being of uncertain length, like how it's O(n) to take the nth character of a string, and how there are rather complicated objects involved in taking substrings. There's a lot more thought and resulting complexity than other languages' default strings. And yes a few languages use extended grapheme clusters, but I feel like emojis were the real motivation.