Group By on column from joined table
Probably because the table "dict_verbs_german" is the last table joined. 

When I last researched this, "using temporary; using filesort" meant MySQL was writing the the join result into a temporary table, then sorting. (See note below.) In order to avoid "using temporary; using filesort", you'd have to meet all these conditions.


dict_verbs_german is the first non-constant table in the JOIN order, and 
dict_verbs_german has an index that marches the ORDER BY column list.


To avoid "using temporary", you'd have to meet all these conditions.


dict_verbs_german is the first table in the JOIN order, and
dict_verbs_german has an index that marches the ORDER BY column list.


Note: I'm talking about ORDER BY, because that's specifically what my research dealt with, and I'm pulling these notes from an email I wrote in 2010. I think the same optimizations applied to GROUP BY, but I could be wrong. Improvements to the optimizer over the last couple of years might have changed things, too. 



MySQL documentation


  In some cases, MySQL cannot use indexes to resolve the ORDER BY . . ..
  These cases include . . . joining many tables, and the columns in the
  ORDER BY are not all from the first nonconstant table that is used to
  retrieve rows. (This is the first table in the EXPLAIN output that
  does not have a const join type.)


MySQL documentation for optimizing limit queries

(I don't think this last reference will help you with this problem, but it's good to know where to find it.)



Later . . .

Cutting the WHERE clause seems to eliminate the filesort. (That might not be true for real-world data.) Maybe you can create a view without a WHERE clause and a LIMIT clause, then query the view and still avoid a filesort. I'm sorry that, for personal reasons, I'm not able to test that for you right now.