One reason is the rise of the family plan, which drives individuals to stick with their existing carrier rather than switch to the company's. The other reason is that no national carrier's coverage is universally great, so companies with offices in different regions are better off having a mix of carriers that cover those locations well. The bottom line is that the carrier's "only on our network" offering -- meant to get your users off competing networks -- is unworkable.
Second, carriers have a long history of making money through slimy tactics. They still sell "unlimited" data plans that are in fact limited, if not in bytes then in throughout speed. But they've done much worse, such as when Verizon Wireless set up its cellphones so that users could easily tap the button to launch the Verizon data services, which drew an instant data charge on users' bills -- even if they cancelled the action or immediately hit the Back button.
There's a whole industry called telecom expense management (TEM) that exists solely because carrier bills cannot be trusted to be accurate. Despite years of claimed work by carriers on their billing systems, the bills remain untrustworthy, and (surprise!) they tend to overcharge. This is a provider you'd want to give more business and trust?
I don't think AT&T's new set of APIs for HTML5 apps is slimy, but it is a great example of the carriers' tired "lock them in" attempts. (Verizon Wireless had a more controlling version of this idea two years ago that failed as developers rightfully ignored it.) Some of them link application functionality to AT&T's network, such as those that use the AT&T billing system for app purchase and to handle SMS texting. AT&T's geolocation API doesn't lock into the carrier's network but instead provides more general hooks that might be useful, except that HTML5 already has a geolocation API. At the end of the day, these APIs are meant to tie apps to AT&T and not to help developers build better HTML5 apps.
Where the carriers could provide real value
This year, carriers will see Apple make more money from the iPhone and iPad (apps and devices) than all the carrier combined make from all their device services. Accordingly, I've noticed a rise in consultancies suggesting what new things the carriers could do to no longer be just "dumb pipes."
For example, Adaptive Mobile suggested that carriers could take on the burden of providing antimalware and antivirus defenses through their networks, given that its surveys show users don't believe it should be their responsibility. (Adaptive naturally sells carriers a tool to do just that.) Accenture has suggested that carriers could provide tech support on mobile devices so that IT wouldn't be burdened by the multiple OSes and hardware devices in use today. Accenture does a lot of that kind of back-shop work for customers in other areas and would love to do it for the carriers.
At first blush, it makes sense. The network is a good place to detect malware and viruses, and the carriers run them (the cellular ones, anyhow). Carriers and their affiliates sell a variety of smartphones and provide support to individuals on the phone and in their stores, so why not scale that to support entire businesses?