There is a problem with query-side synonyms, edismax and must-match=100%.
edismax interprets must-match=100% as "number of terms found by edismax from the original query". These terms go through the query analyzer, and the synonym filter creates more terms, but the must-match term count is not incremented. Thus, given a synonym of
the query q=big+monkeyhouse&mm=100% becomes (effectively) q=big+monkey+house&mm=2. This query finds documents matching only two out of three terms big+monkey, monkey+house, big+house.
This might also be a problem in dismax.