I didn't know about the problem on-buy effects on Goko. I tested it now. Although it's visually wrong -- and very misleading when it comes to lose-track -- it seems to work correctly. This is what should happen:
- Play Haggler.
- Buy Lab.
- Haggler when-buy: gain Smithy.
- Watchtower when-gain: topdeck Smithy.
- Gain Lab.
- Watchtower when-gain: topdeck Lab.
This is what happens on Goko:
- Play Haggler.
- Buy Lab. It's moved to your discard as if it's gained.
- Haggler when-buy: gain Smithy.
- Watchtower when-gain: topdeck Smithy.
- Watchtower when-gain: topdeck Lab.
So you can topdeck the Lab even though it was seemingly covered by the Smithy. You can topdeck it even if you don't topdeck the Smithy, seemingly fishing it out from below the Smithy.
***
However, when it comes to Border Village, it's just wrong.
This is what should happen:
Buy and gain BV.
BV when-gain: gain Market.
Watchtower when-gain: topdeck Market.
Now it's too late to topdeck the BV because it was covered by Market.
This is the other way:
Buy and gain BV.
Watchtower when-gain: topdeck BV.
BV when-gain: gain Market.
Watchtower when-gain: topdeck Market.
But on Goko, after gaining the BV, you get no choice of Watchtower when-gain. You must do BV when-gain. So you gain Market. BV should now be lost track of, but on Goko it isn't. Now you can reveal Watchtower, but there is no indication of which gain it's for. It's for the Market though. Afterwards you get to reveal for the BV, no matter if you topdecked the Market or left it on top of the BV.
This means you can topdeck the BV after the Market, which is actually impossible to achieve if the rules were followed.
This also means you can't topdeck the Market after the BV, which is possible if the rules were followed.