Let’s use a little example.
For example, a NPC blocks your way until you get a badge.
what happens when you defeat the gym leader is:
a. You receive the badge
b. The event that the NPC was blocking your way (let’s say the event was “set”) became “unset”.
Meaning, the game doesn’t check whether you have the badge and then proceeds to place the trainer there. Rather, the game simply removes the NPC from blocking your way when you acquire the badge normally.
So, if you were to acquire the badge abnormally (such as via hacking it in), because you didn’t actually defeat the gym leader, the NPC will still be blocking your way.
It doesn’t just apply a NPC blocking your progress, but it occurs with a variety of stuff, such as when an NPC is suppose to appear, legendary subquest etc.
No clue. It is released when it’s released.