Hi, figured I'd answer this for you here. Recharging and flinching are both what are called "volatile status conditions." These are conditions like confusion, flinch, Ingrain, etc. that are not reflected as a permanent status like poison or burn. Basically, the way RBY's game code works is that any time a flinch happens, it removes the recharge volatile status flag if the flinched mon has it. This is done to prevent you from repeatedly flinching something on recharge so it can't ever move; partial trapping moves also clear the recharge flag for this reason. The game is also coded such that the flinch volatile status automatically clears at the end of each turn, which is why you never see a message or flinch if the Pokemon inflicting the flinch goes second. The devs missed the very obvious issue here that flinching a Pokemon after they had already moved still results in the flinch clearing the recharge flag, even though flinch gets cleared right after, before the next turn. Basically, it's a coding oversight.