I think the answer to this question lies somewhere else than you think;
OrderByand ThenBy- these are the so-called "deferred statements". What you described as behavior is correct at some level, but in reality ...
OrderByreturns a reference of the type you are suggesting. But this object is not a collection in the traditional sense; It is part of the expression tree. Subsequent calls ThenByfurther modify this expression tree.
, . , , ( , ).
, OrderBy ThenBy , ... . , OrderBy, ...
var names =
var namesByAlpha = BubbleSort(names=>names);
var namesByAlphaAndLength = BubbleSort(namesByAlpha=>namesByAlpha.Length);
, BubbleSort - , , , , , ( ), , ... , LINQ, ... , alpha first. , , OrderBy "", .
OrderBy ThenBy, , Bubble Sort ( ), , , , , , . , ... .