My guess is that they just goofed up on it when releasing Gold/Silver back in the day, just one of those errors they missed. And then they thought they couldn't retro-actively fix it in future generations anymore because then it wouldn't make sense that they couldn't breed in the previous generations but can in the current. A bit similar to how they're so adamant to only introduce new evolutions to existing pokémon if the evolution method is also new. They could have made Espeon and Umbreon evolve with Sun Stone and Moon Stone respectively when releasing the 2nd generation, but they didn't because the Moon Stone already existed in Gen 1 and it wouldn't make sense that Eevee couldn't evolve with a Moon Stone in those games anymore.
It's completely silly and stupid reasoning, but I can't really think of anything else.
I believe some Pokemon that evolve through move knew said move a generation or more before, but i may be wrong on that. Your reasoning does explain why there are so many Pokemon that have to hold an item while trading to evolve, though