Erlang iolists are an example. It means you can generate HTML from templates as a deeply nested list of strings, and write that to a socket efficiently, without concatenating the strings.
The point isn't the requirement, the point is the possibility. You can supply a vector with just one element if you like. But if the data is already in multiple buffers, you avoid either a copy or the overhead of additional syscalls. Typical use cases are when you have headers and payload of some protocol in different buffers, possibly of multiple layers of protocol headers.