3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
problem 1: even if your code says “version 2.1 of the lgpl (and no later version)” this clause opens the door to your code being relicensed under gpl3.
(maybe) problem 2: some vendor forks gtk+ and modifies it. they include the modified version in their proprietary product. they release their changes to the code under gpl (using the clause above). upstream is unable to integrate these changes.
the reason i say “maybe” is as follows: the act of linking against the library and the act of the relicense can be seen as two separate acts. these acts have to be done one before the other.
consider the case of relicense first. in this case you are linking your program to a gpl’d library and the only way that this is possible is if your code is gpl too. ok. this is probably pretty much what rms intended.
now the case where you link to the library first and then relicense. in this case, you made changes to the _lgpl_ version of the library and must release those changes as lgpl?
i guess the question is if someone can sort of atomically gplify the copy of the lgpl’d library that they modified for use in their own product and, by doing so, meet their code-release requirements under the lgpl.
it seems quite ambiguous… i am not a lawyer.