According to this question (that is, OP stated the belief and was not corrected) - chained operators grow to the left:
a << b << c << d;
// ==
operator<<( operator<<( operator<<(a, b), c ), d);
Why is this the case? Would it not be more efficient to do:
operator<<( operator<<(a, b), operator<<(c, d) );
i.e., to balance as much as possible?
Surely the compiler could figure this out for better runtime performance?