The carriers decide what gets updated and when. They have to pay for the update, not to mention provide their customers the support to get it up and running, and also to deal with potential issues that may come with an upgrade.
Basically, the carriers have been known to favor higher selling phones for updates vs. phones that may have not sold so well or even bombed. I can tell you right now, from being a T-Mobile customer since 2002 when they opened their doors....they do NOT support their phones for long periods of time. 6-8 months, tops.
I have a Samsung Vibrant, a GS variant. If you aren't on T-Mobile and/or don't have this phone, you just don't know the amount of things we owners had to go through to get them to give us the Froyo update. Every other GS variant in the US had it....we had to tweet daily, write support daily, call Samsung/T-Mobile daily. That got us a VERY early and unfinished build of Froyo, just to shut us up. The REAL, finalized build of Froyo didn't come until way after Gingerbread was already penetrating on most other devices. We still don't have GB. All of the other GS 1 models have had GB leaks, but not us.
Not very many people bought the G2X because it was riddled with software problems from the start, a lot of which still aren't fixed. T-Mobile even took it off of their website for several months because too many people were complaining about it. Especially with the ATT merger, the odds of the G2X ever getting an official ICS update are very slim.