It is actually DICE, not EA, that does the programming for BF2...A lot of people always blame EA when in fact the coding problems should be blamed on DICE instead. ;)
Not trying to defend EA, as their business practices are a bit shady at times, but I am just trying to set the record straight.