Ya lo entiendo todo. La clave es esto:
Cita: Entonces, para poner el first_name necesitarías ponerla en el SELECT, pero si haces eso te listará todos los empleados con su salario, ya que el agrupamiento tomaría las dos columnas, y no sólo el departamento.
Sabía que no se podía incluir funciones en group by, con lo que dije antes me refería a que se incluían dentro de la operación del agrupamiento, pero de eso no tenía ni idea. Cuando leí tu consulta pensé que el group by pertenecía a la consulta y no a la subconsulta, probablemente el error viniera de ahí.
Muchas gracias, solucionado y entendido.