Can an on buy effect move the bought card?
TL;DR; there are "When-Buy" effects that move cards from the supply, but there will never probably be an effect that moves a specific, just-bought, card.

I've had an extensive discussion with Donald X. Vaccarino, the designer, on discord before answering here. To thoroughly answer to your question, the following aspects have to be clarified first:


When you buy a card, you pay for the "name" of the card and not a physical copy of it. The physical copy comes as a consequence of buying it.
There will probably never be an effect that moves a just-bought card, because you don't buy a specific physical card.


These are clarified in subsequent sections with the related sources.

Current when-buy effects

There are currently no "when-buy" effects that move a specific just-bought card, as of the time of writing this reply (before Dominion: Nocturne). Here is a comprehensive list of all "when buy" events. Most likely, there will never be an effect in the lines of "when you buy this, move it to ...", because it will be too confusing. This will become clear in a subsequent example.

Owning a card before you gain it

According to the Inheritance FAQ, as @Gendolkari also mentioned, when you buy a card, you own it immediately. Here is how buying an Estate works, if you have inherited Noble Brigand:


You declare that you are buying an Estate and pay for it.
The Estate that you are going to gain now is yours, thus it immediately inherits the Noble Brigand's text.
The "when-buy" activates and you attack every other player.
Then, you gain the top Estate card from the Estate pile to your discard pile.


How Buying works

When declaring "I am buying card X", you do not pay to buy and gain the topmost card of that name at the time of paying, but the topmost card of that name after all "when-buy" effects have been resolved. You are essentially buying an abstract card. Sadly, there is a no clear writing of this exact mechanism. Source: DXV on Dominion Discord channel, at 2017-08-27, 18:00 UTC+02:00.

For your information, here is the order of events: (summarizing from Base rules, p. 5, "Buy Phase", Hinterlands rules, p. 4, "Additional Rules")


You choose a card to buy and pay for it.
No cards have been moved from the supply yet.
Any "when-buy" events are now triggered, which might move cards (Port, Messenger).
You now gain the top card of that pile, with the name of the card you paid for, to your discard pile (unless otherwise stated).
Any "when-would-gain" events are now triggered.
The card moves to its final destination (e.g., discard pile) and it's gained.
Any "when-gain" events are now triggered.


This will become clear with the notorious Messenger example.

Messenger example

TL;DR; in a 2-player game, if there are 2 Messengers left in the supply, you buy Messenger and name "Messenger", you will only gain one, not both. This is how the official digital implementation is working.

Suppose that in a 2-player game, there are at least 3 Messengers left in the Messenger pile: Messenger A, Messenger B and Messenger C, in that order, with Messenger A being the top card. Here is what happens when you buy a Messenger and choose Messenger for the "when-buy" effect:


You spend $4 to buy a Messenger.
"When-Buy" ability triggers; you name "Messenger".
Due to step (2), you gain Messenger A from the Messenger pile (the top one).
Since step (3) was successful (e.g., no Trader was revealed), then every other player gains a Messenger; your opponent gains Messenger B.
"When-Buy" ability ends.
Due to buying a Messenger in step (1), you now gain a Messenger from the Messenger pile; Messenger C is moved to your discard pile.


Here's what happens if there are only 2 Messengers in the Messenger pile:


Due to buying a Messenger in step (1), you now gain a Messenger from the Messenger pile and fail, as there are no more Messengers there.


Talisman Example

You play a Talisman and buy a Ruined Village. Let's name Ruined Village A the top card. Here is the order of events:


You spend one buy and $0 to buy a Ruined Village.
The "when-buy" of Talisman is triggered, because Ruined Village costs up to $4 and is not a victory card.
You gain Ruined Village A from the supply, due to the "when-buy" effect in step (2).
Now, you gain a Ruined Village because you bought one in step (1).


If the next card is Ruined Village B, then you gain that one.
Otherwise, if the next card is Ruined Market, you gain nothing.



Note that in the last case you failed to gain a Ruined Village after buying one. The one you gained was from the "when-buy" effect. However, this effect did not move the specified card you were about to gain; it just instructed you to gain another copy of it.

As you can see, there are "when-buy" effects that move cards from the supply (Messenger and Port). You first resolve any "When-Buy" effects and then gain the top card from the respective pile, if there is one. For this reason, I assume there will never (probably) be an effect in the lines of "When you buy this, put it ...", because it would be too confusing.