"Steam has adopted a set of restrictive terms of service which limit how developers interact with customers to deliver patches and other downloadable content... No other download service has adopted these practices."
Of course, other download services are not Steam, and when friends have come together in unison to use a single service, making them switch isn't easy. It's also important to note that these policies were suddenly a problem, EA using Steam since it's inception without fault.
The reality of it is, of course, that EA wants full control, just like they do over Xbox Live. They were the sole company who held out until Microsoft bowed to their will and let EA use their own servers for online play.
In the realm of digital, the dirty secret is that no mega-publisher like EA, UbiSoft or Activision needs Steam; Steam needs them. A similar comparison is Netflix, who relies on the studio to feed them content. Warner Bros. and Universal do no need Netflix to deliver their content digitally.
Keeping it at home on the company's own servers as opposed to a third party means paying no fees, no licensing, and doing it your own way. EA sees that as a benefit, and with a title as gargantuan as Battlefield 3, the strategy may pay off.