Jasně, u těch výsledných hodnot je to jasné, a tam to může mít smysl (*), hlavně to není tak drahé.
Já měl na mysli ten původní serializovaný řetězec, ale to se spíš týká situací, které z principu optimalizované nejsou, takže je to jedno (tedy načíst všechno do řetězce a potom deserializovat). Pokud ten deserializátor umí pracovat přímo s byte streamem, tak to nic navíc nestojí.
* - tedy, ono obvykle stejně nemá, neboť hodnota se přečte a pak se jenom předá dál (do databáze či opačným směrem, obvykle opět jako UTF-8). V tomto směru by pořád dával smysl spíš explicitní random access UCS-4 string.