The program isn't forcing anything. Gen1/2 do not store the version the Pokemon originated from in its data, therefore the best we can do is match whatever properties available. The Mankey can be from an egg, or it can be from a wild encounter. The program has to decide which one it matches, so it stops on the first valid encounter it finds.
The encounter generator is entirely separate from the legality check matched encounter. If you generate an encounter that is later in the list of everything that is possible, the program will always stop at the first valid.