Enum系関数と富豪的プログラミング

Boost.AsioのライバルらしいTR2提案を読んでいました。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1925.pdf
その中で名前解決のインタフェースを見てみると、

// Container of addresses.
typedef vector<stream_address> stream_address_list;
typedef vector<datagram_address> datagram_address_list;

// Resolve host/port names to addresses.
const stream_address_list resolve_stream(const string& host,
                                         const string& port);
const datagram_address_list resolve_datagram(const string& host,
                                             const string& port);
const stream_address_list resolve_stream(const string& port);
const datagram_address_list resolve_datagram(const string& port);

なんと、アドレスクラスのvectorを返しています。(Move Semanticsの導入を期待してるんでしょうか、、、)

こういうのを見ていると、Enum系関数も全部vectorにしてしまえ、という気になってきます。ただ、for_eachタイプの軽さも、スレッドを使ったiterator実装も捨てがたく、未だに悩んでいたりします。