But by the time the when-trash effect takes place, the card is in the (public) trash, no?
Yes, we discussed that already in the posts you're quoting. You're moving a card being trashed to a public place, but that is also the case for a card being discarded.
GendoIkari is right, not all discards happen publicly: e.g. discarding your hand to Minion, where other players only see the top card you discarded. So the other hand cards go from a private place (hand) to a completely hidden place (discard pile), without being revealed before discarding.
Same with Cartographer from this expansion when you discard several cards - though in this case, since you have carefully chosen which cards to discard, you'll rarely miss a discard reaction anyway.
I guess you're agreeing that "revealing from a private zone" is not a valid argument.
No? The discard pile (other than the top card) is a private zone. If you discard a few cards, no one will ever know what the third one from the top is unless you reveal it. If you reveal that the third one is a Tunnel, you're revealing it from a private zone. Similarly, if you have a bunch of cards in your hand, no one will know that the third one is a Moat unless you reveal it. I'm not sure what you're objecting to in that analysis.
Ok, so now we're back to revealing to a private zone. As I said: "Not really, since all the when-discard cards have rules saying that you have to reveal them."
The reason you have to reveal them is
because the discard pile is a private zone. Catacombs doesn't say "when you trash this, reveal it and gain a cheaper card"; you don't have to reveal it because the trash is already visible. Tunnel doesn't say "when you discard this, you may gain a Gold"; you have to reveal it, for the same reason Trader doesn't say "while this is in your hand, when you gain a card, you may exchange the gained card for a Silver."