Hmmm. Maybe. Ironworks Silver, reveal Trader, gain the same Silver you would have gotten anyway, you still don't get the +$1.
So. The timing of Nomad Camp's effect still has to be when-would-gain, just because that really is when it activates. But the effect isn't replacing the gain with another gain (as Possession's and Trader's is); it's just redirecting the gain. So like, "when you would gain this, redirect the gain effect's target to the deck-top."
This would still fail when interacting with a notional "Swap Meet" card (gain Action card to hand), since Donald has said that if such an effect existed, you'd get to choose the target for Nomad Camp; but since such an effect doesn't exist, we don't have to worry about it.
Firstly, if the when-would-gain event just redirects the upcoming gain, it doesn't trigger another gain, so no recursive loop, and we don't even need the "to somewhere other than your deck-top" qualifier. So that's good.
I really tried to think of any way that Nomad Camp can work the way Donald described with Swap Meet though. It's obvious what the intention is here. Swap Meet (like Mine) has a gain-to-hand effect. Nomad Camp has a gain-to-deck effect. When Swap Meet tries to gain Nomad Camp, both effects kick in at the same time, so you get to order them. But how can Nomad Camp have a gain-to-deck effect with the same timing as Swap Meet? The only way is if we define
all gain-to-deck effects and gain-to-hand effects as having a when-would-gain where you set the target. So first you set the target, then you do the actual gain. This includes cards like Mine and Develop. And even though normal gain effects always mean gain-to-discard, we have to exclude these from setting a target on when-would-gain, or else every gain-to-hand and gain-to-deck would be optional! When you think about it, if ordering Swap Meet and Nomad Camp should be possible, this has to happen before you actually gain the card, so there
has to be some time frame before gain when both Swap Meet and Nomad Camp try to do something.
We could define gaining like this:
The gaining destination per default is your discard pile.
"Gain a card": Move the card from Supply (or the indicated location) to its gaining destination.
"Gain a card by putting in your hand": Before gaining the card, set its gaining destination to your hand.
"Gain a card by putting in on top of your deck": Before gaining the card, set its gaining destination to the top of your deck.And then Nomad Camp would be:
Before gaining this, set its gaining destination to the top of your deck.This way Swap Meet and Nomad Camp would trigger at the same time.