I renmembered that there was basically the reverse problem: If exactly one gainable card was gained and one or more ungainables, the game incorrectly gave you the gainable card: http://forum.shuffleit.nl/index.php?topic=2588.0
That was not really the reverse problem, that was a bug. The reverse problem would be that the game lets you choose to do things that have no effect, which is the case with many cards today, for instance the mentioned Pilgrimage.
The main problem with allowing to pick the ungainable cards is the same as the reason that for "choose a card" effects a text box needs to be present, just in case you want to name Necropolis, a card from the Black Market deck or something similar. If your opponent gained a Zombie from the trash last turn, how should this be presented? All of this is not a problem for Pilgrimage, for example.
It makes much more sense IMO in that case to give the user the option to not gain a card (even if he may be unsure why that is the case when the card text gives no optionality).
ADDED: One idea just occured to me: If the player was given a box of cards to gain from, like for Tournament Prizes/Duchy, it would avoid this problem. But then I'd bet that complaints would come forward when players wanted to gain Spoils, Bats etc. and were left empty handed. And even that Tournament interface uses a 'Don't gain anything' button if either Prizes or Duchies have run out.
Good point that for Smugglers this is a bit more tricky than for other cards. But your idea is good: a box with all the cards, just like when you get to choose cards from trash or your deck or your discard pile.
I went through all the relevant cards that I could immediately identify as giving a choice. Here are the ones that currently "help" the player by giving a non-accurate choice of doing nothing:Smugglers
- "don't gain"Graverobber
- "don't gain", "don't trash"Lurker
- "don't trash"Tournament
- "don't gain"Torturer
- "don't discard"Raze
- "don't trash" (when Raze is already in the the trash)
Here are the cards that give the choices that are literally on the card:Native Village
- always "set aside / pick up", even with no cards on mat or no cards to set asideQuest
- always "attack / 2 curses / 6 cards" (should at least not have "attack" of you don't have an attack, or "2 curses" if you don't have at least one, since then nothing will happen)Governor
- always "+3 cards / gain gold / trash & gain", even with no cards to draw or no cards in hand to trash or no golds in supply (of course these choices also entail effects for the other players - but even with no golds and no silvers, the choice to "gain gold" is given).Hunting Grounds
- always "gain 3 estates / gain duchy", even with no estates in supply (should say "don't gain duchy" then), or no duchies (should say "don't gain 3 estates")Sprawling Castle
- same as Hunting GroundsMiser
- always "copper to mat / profit", even with no copper in hand (except when you don't have copper in tavern either) (should say "don't profit" instead)Changeling
- lets you choose cards that you can't gain (except when there are only such cards) (those cards should be non-clickable with a button "don't gain")Pilgrimage
- lets you choose cards that you can't gain (those cards should be non-clickable)Count
- always "discard / topdeck / gain copper", even with no cards in hand (should say "don't gain copper")Count (2)
- always "+3 coins / trash hand / gain duchy", even with no cards in hand or no duchies in supplyCourtier
- options with gold gain even with no golds in supplyTrusty Steed
- options with silver gain even with no silvers in supplyWild Hunt
- always "cards / points", even when there are no estates in supply (should say "don't draw") (as an side, I think the options should be "+3 cards / gain estate"; "cards" doesn't signal draw, and you can gain an estate when there are no tokens on the pile)Small Castle
- this one has a bug (listed in the card bugs post)
So it's very inconsistent. I would say that instead of changing all the cards in the latter list, the better option is to change the first six cards so they always give you the same choices.
In any case there's no way of preventing players from doing everything that has unintended or unclear results if they don't know the rules. Ambassador of course lets you reveal anything; when you choose there is no mechanism that lets you know that you can't return a card. (Technically it has to let you reveal anything, but in practice there are virtually zero times that you want to reveal something for no other effect instead of just clicking "don't reveal".)
There is also nothing that prevents you from putting a BoM or Overlord on your Tavern mat. Both of these mistakes happen all the time, and there are others. (Edit: Prince!)