So you believe that Alice writes code that is GPL v2 or later and gives it to Bob, Bob modifies it and releases the modified version GPL v2 or later to Jane, then Jane modifies and later redistributes under GPL v3 to John, that Bob is in violation of GPL v2 at the point that Jane chooses GPL v3?

Do you have any idea how ridiculous this is?

Suppose that Bob gives Jane the code, and Jane sits on it for a year and a day. Then you'd have us believe that for a year and a day that Bob's distribution was OK until Jane decided to choose the GPL v3?

Um, sorry. It doesn't work like that. Either Bob's distribution to Jane is OK, or it isn't OK. At the point of distribution. Which happens before Jane has any reason to accept any copyright license. (Which might be never. That is, after all, how many times that I've needed to accept the copyright license on Linux.)

And, as I've pointed out many times, as long as the option of GPL v2 is available, you've satisfied the requirements of the GPL v2. The other options that you may or may not provide are irrelevant, the GPL v2 is satisfied if you provide the GPL v2 as an option. (Copyright law may not be satisfied if you try to provide options that you're not allowed to provide, but that is outside of the GPL.)

Cheers,
Ben