На самом деле определение типов выражений в джаве - сложная фигня. Не каждый понтовый синьор сходу объяснит, почему mapOfStringString.entrySet().stream().sorted(Map.Entry.comparingByKey().reversed()) не компилируется, а если reverseOrder(Map.Entry.comparingByKey()), то компилируется