MI has many common uses: policy-based design ("Modern C++ Design" is full of basic examples, and similar things can be found in boost.operators and numerous other libraries), mix-ins (such as std::enable_shared_from_this or std::nested_exception), regular template metaprogramming, and, as in the iostreams case, direct is-a relationship.
I'd say iostreams is really more notable as an example of virtual inheritance in the standard library, and for the period (1998) it was a reasonable, although very simple, use case.