The thing is, "When you buy" was weird from the start. "Buying" a card is a process that ultimately (usually) includes gaining it. But "When you buy" never meant "When you've completed the buying process"; it really meant "[At this certain specific point during the buying process]." It was more like a "When you pay" or "When you choose to buy." Or maybe a "When you buy, first."
Now that these triggers are supposed to happen after the gain (after the entire buying process), continuing to say "When you buy" but changing that to mean "When you've completed the buying process [and actually gained the card]" seems like it would make the most sense. It doesn't use a goofy wording, it makes "When you buy" mean what I would have expected it to mean, and it makes cards behave as currently desired.
The only weird thing I can think of would be: is the "When you gain" trigger window the same as the "When you buy" trigger window? Like, right now, there's just a single trigger window, so you wouldn't want to add another one that happens basically at the same time for people to wonder if it came first or last or if you could reorder triggered effects between them. Is it a problem to have a single trigger window handling things specified with two different wordings? I dunno.
Of course, using "When you buy" would mean using the same words but having them mean something different from what they used to mean, which isn't ideal. So maybe it could be "When you've bought" or "When you buy... afterwards."
"When you gain... due to buying it"? That's not much better than the current way, I guess.