Perhaps one slight fly in the ointment... shared bandwidth?
OK, we all get unlimited data. Now we're all trying to use it, resulting in longer sessions and a demand for higher speeds.
Result? Network slows to a crawl. Urban areas require huge numbers of microcells just to keep people online as cell sizes shrink under the load (breathing). Overall experience worsens. There's only so much you can squeeze into a shared RF resource before it buckles under the load.
There are more reasons for the data cap than their profits. Think about it.