"Also, if any scenario allows him to melee attack a non flying creature while he still has flying himself, we run into an issue with guards being unable to counterstrike him."
It should appear so.
Let's take an example, Wizard with Mage staff (Reach) attacks a Flyer who has counterstrike enchanment.
1. Wizard does not gain Flying, but he is able to attack a Flyer (the same should apply to Flyer who is attacking non-Flyer, he does not lose Flying, he has Reach.)
2. If Flyer reveals enchanment, he cannot counterstrike, because he is out of reach (also he cannot lose Flying in the middle of action).
If Flyer with Reach attacks non-Flyer guard, it uses the guard but is not able to Counterstrike.
So there is a need for the rules to updated:
1. Flyer with Reach doesn't need to lose flying when attacking non-flying.
OR
2. A creature with Flying trait, cannot use Reach trait. (So when Flying is attacking non-Flying, he must lose Flying, then he can utilize his Reach trait via Sweeping or Battle Fury).
After writing it down i was firm about nr1, but it seems nr2 doesn't contradict any rules.
Also there is the question Non-Flying attacking with Reach a Flying with Counterstrike?