... the GPL is rather optimistically written with the assumption that future versions will remain compatible.
No it's not. If you assume every future version will remain compatible with the current version, you have no reason to specify "or any later version". If, on the other hand, you assume that future versions will be incompatible, then you can offer in your license terms the option to release under any future version of the GPL. And anyone redistributing it can choose which of those -- v2 or any later version -- to attach.

Hell, if you wanted to be perverse, you could take a "GPL v2 or any later" program, modify it, and attach a license specifying "GPL v7 only". Now that would effectively take your fork proprietary. Cool, huh?