context.EntitySet.AsEnumerable().OrderBy() returns an IOrderedEnumerable which is guaranteed to be ordered but it looks like the sorting is done client side.
context.EntitySet.OrderBy().AsEnumerable() preserves the expression as an IOrderedQueryable until it finally becomes an IEnumerable. I believe the ordering is done by the database in this case which is preferable. In some basic tests the output appears to still be ordered. Is ordering guaranteed even though IOrderedQueryable.AsEnumerable() only returns an IEnumerable?
Yes, it is guaranteed.
AsEnumerableis only a simple forward-only wrapper (andIOrderedEnumerableis only a marker interface in fact).