suppose you have a table where some column has various values... like, say, a table of rides where each ride has a PK and also a column for the distance
how do you image MAX(dist) is found? wouldn't the engine have to go through all the rows somehow? i can see it examining all the rows and keeping a variable which it replaces every time it finds a larger value
now imagine you had to return only one row from a result set which is sorted... wouldn't it be easier, instead of sorting them all, simply to scan through and find the largest value, then return that row?
what i'm saying is, we can speculate all we want about what's fast, and what's faster, but in the end, the optimizer decides how to do what you ask it to do, and it might not actually sort if it doesn't have to
if you want to know what's fast and what's faster, there is only one way -- EXPLAIN