There are several criticisms of the standard stream system -- most notably that it usually is not as performant as C's system, and that they don't allow reordering of the items to be formatted, which can make localization more difficult.
Personally, I use streams for most everything, because they allow me to have a function write to a console, a file, or a string, without having to modify the function.