L'esecuzione della query può ignorare il ORDER BY
nel FROM ( SELECT ... )
. Questo probabilmente il vero motivo della differenza che stai vedendo. (Non credo che la risposta di Gordon sia pertinente.)
Il problema è discusso qui (4 anni fa):https://mariadb.com/kb/en/mariadb/il-gruppo-per-trucco-è-stato-ottimizzato-away/ ; che ha una soluzione, tramite un'impostazione.
Alcune altre soluzioni sono qui:http://mysql.rjweb.org/doc.php/groupwise_max ; sono progettati per essere efficienti.
Ancora un altro possibile la soluzione è aggiungere un falso LIMIT
con un numero elevato nella sottoquery.