Spaghetti:
Taking CG-NAT out of the picture. If you have one dynamically assigned public IP, vs one statically assigned IP, the resource cost is the same.
So why are we charged more?
Simple, if it was free everyone would expect a static ip. Dynamic users can be swapped to to cgnat if needed and 99% of people would have no clue.

