Here's the kicker: If you keep your phone for more than two years, AT&T keeps billing you at the same rate, even though you've already paid off the phone.
There is a pretty easy way to fix this, however. If phone companies were forced to break out the cost of subsidized phones on your bill, customers would know exactly where they stand. They can then make more-informed decisions about where their money is going. You get this type of breakdown on home mortgages and car leases, so why not for mobile phones?
Here's why: When your two-year (or whatever length of time) agreement ends, AT&T wouldn't be able to justify billing you at the same rate because you'll have already paid off your phone. The line item with the phone subsidy would be gone and AT&T would have to bill you significantly less for the service. Therefore, most of the incentive for carrier exclusivity would be gone.
This would have a ripple effect on the industry. If costs are broken out, carriers can compete on price more honestly. If the G1 you bought from T-Mobile costs $30 a month in subsidy, you know exactly what that unlimited data plan and phone plan are costing you. And you'd know that someone with an iPhone is paying X dollars more or less for essentially the same thing.
Carriers would be forced to innovate to stay ahead of their rivals. Additions like Visual Voicemail would be a value-add to consumers on other carriers. They could charge more for it because it would benefit customers.