Data caps aren't necessary from a technical sense, no. But net neutrality supporters remain stubbornly ignorant of what they actually do: They raise prices for heavy users, rather than raising prices for everyone else. It's simply a fairer method of offering pricing brackets.
Artificially limiting network speed is intentional crippling of service. Rather than pay for "very slow service", "slow service", or "fast service", providers should give everyone the best possible service their network is capable of... and then charge us for how heavily you use it.
Basically, by fighting data caps, you're demanding that a grandma who only checks their email once a day has to pay as much as a family of four who streams Netflix in 4K every waking hour of the day.