It's a violation of the fundamental principle of free software. If I stop paying Apple for the developer license, then I stop being able to USE the software on my phone. They hold the power over the owners of the phones to stop them from using the apps they compiled; and that restricts your freedom to use the software.
This doesn't seem to be a direct violation of the GPLv2 (the license claims no restrictions over using the program, but doesn't seem to require the distributor to ensure modified versions can be used). It is a violation of the GPLv3, which requires that object code distributed for a "user product" (something that is primarily used by a person; consumer electronics fall into this category) must also be distributed with:
any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you distribute software covered by the GPLv3 in the Apple App Store, you cannot satisfy the requirement of the license to also distribute whatever is necessary to ensure the continued functioning of the modified software; as Apple holds that power. The problem wouldn't exist if Apple allowed users to elect to run applications that are not authorised in the app store (such as with the Android market).
I have neither an iPhone nor Mac, so I'm not sure what the details of the developer license are, but from what I can tell it seems like that would also make it impractical to distribute modified copies -- chances are the app would be rejected from the app store on the grounds of being too similar to another app if it were merely an improved version; or you'd only be able to run it on other developer devices (and I'm not sure what restrictions are on that too).