Bulbapedia and Veekun both claim that Gravity lowers evasion by two stages, but our implementation increases Accuracy based on the effect of -2 evasion, and thus would theoretically be wrong if a Pokemon were at any nonzero evasion stage.
Which one is the correct implementation?
For Flash Fire, in Gen 3 and 4 being frozen makes you take damage from Fire moves (and they also thaw you), presumably because Ability immunity checks come after the accuracy check. Since Gen 5, Ability immunity checks come before the accuracy check, so you can't be thawed by them since Flash Fire prevents them earlier. Will-O-Wisp does nothing while the target's frozen, as you would expect, in all gens.