Just do an OrderBy (...) or OrderByDescending (...) followed by First () and you have it.
Such an IOrderedEnumerable optimized version of First (OrDefault) would be trivially easy to implement by using an IOrderedEnumerable optimized version of Take (1).