Note that here is likely a question about desirability and practicality.
The small buffer optimization is usually vital with strings. The
vast majority of texts stored (some sort of ids, names, codes,
phone numbers) are under 30 bytes long.
With std::vector we can't judge that so generally. It is likely
a corner case where we need a lot of often little vectors.
When someone really is in situation where the optimization
helps then they can perhaps use for their container
std::basic_string<TheirStuff,TheirTraits>? It is 13
trivial functions to write that TheirTraits and if they are into
such optimizations then they get (likely also useful) std::basic_string_view<TheirStuff,TheirTraits> as a
bonus! ;)
Minutiae: std::string is usually implemented to use 32
bytes on 64-bit platforms while std::vector is usually
implemented as 24 bytes long. It is very likely for to
tap that vein.