I think that the formulation should be "GPL, v2 or latest", because
otherwise those that want to redistribute the code can choose which
version, which is not the intent - v3 is in fact more restrictive
with
respect to tivoization. Only one GPL should be applicable. The
formulation "or later" is probably spilled usage when indicating
which
version can be used - then it means one can choose version.
The standard formulation, as advised in the GPL appendix which
describes
how to apply the GPL to your programs, is
This program is free software; you can redistribute it and/or
modify
it under the terms of the GNU General Public License as published
by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
The whole point of this formulation is to give users of the program
the
option to choose which version of the license they want to be bound by
if they redistribute or modify the code, and in particular to make it
easy for a project to upgrade the license OR NOT.
This formulation also means that the distribution conditions may
change,
even though the copyright notice is not changed of a package, when
new
version of the GPL are issued. I think that is fully legal.
The problem with your formulation is that it is too restrictive.
Consider this scenario: a program is being distributed as 'GPLv2 or
latest' as you suggest. Someone writes a GPLv3 program which links
with
that code (as they are allowed to do at that point). Now Version 4 of
the GPL is released. Suddenly the person with the second program
can no
longer keep linking to new releases of the first one, because 'GPLv2
or
latest' now means v2 or v4 and neither v2 nor v4 are compatible with
v3.