While I don't disagree in principle that you should get what you pay for, the problem with a virtual product like a data bundle is that you cannot 'store' it, i.e. if you don't use your bundle in a specific period, where do you keep the unused portion? It's not like buying a tank of petrol, you can keep and use at your leisure.
The second, important point is one of what you buy vs what the delivery mechanism is. This is the biggest challenge in delivering data bundles as it includes a time component.
You buy a certain 'bundle of data', say 1GByte. Although you have a period of 30 days in which to use it, you could also expect Vodacom to deliver it at maximum speed, less than 2 hours at current speeds.
To ensure that the bundle can be delivered at reasonable speed (and not get accused of a slow network), Vodacom must buy a certain amount of back-haul capacity. This is not bought in outright bytes, but rather bits / second.
The bigger the pipe (more bits/second), the more expensive it is. If no-one uses the pipe at any given point in time, that unused capacity is lost forever. Again, because of the time element, you cannot 'store' unused capacity. It's a true use-it or loose-it situation.
So there is a distinct mismatch between what is bought (capacity in b/s) and what is sold (bundles in bytes).
You can see that this becomes a complex calculation to try and determine the amount of transmission required to try and deliver all bundles within a reasonable time-frame. Any of these parameters will affect the price.
The easiest solution would be to have an uncapped service and you buy bandwidth in bits/second, i.e. you pay a fixed fee per month for a fixed bandwidth. The problem with this is pure cost; it'll be so expensive, very few people would be able to afford it as the network will have to be provisioned for 1.5Mb/s / user and you'll pay for your 1.5Mb/s / month, if you use it or not. Think of a wireless Diginet service.
Another option is to make sure you have just enough speed to deliver your bundle in the required period. If you buy 1GByte of data over 30 days, you only need about 3Kb/s throughput to make use of your bundle. Or 1.5b/s for a 500M bundle. This would drive costs down substantially, but again, no-one would go for a service like this.
Somewhere between these two extremes, one must find a suitable compromise, between instantaneous access speed, total data usage, contention ratios and number of users.
Vodacom did exactly these calculations and the current 'bundle sizes' / 'access speed' / 'number of users' parameters dictates the current pricing. So it's not so simple as is often believed by forumites.
One can easily introduce roll-over but the effect on the above would be that the transmission speed will have to increase (in worst case) by the same factor as the roll-over period as you now need to accommodate potential over-subscription.
Worst case would dictate a doubling in bundle price for every 30 days of roll-over. Again there are mitigating parameters so it won't quite be a 1:1 increase, probably something less than a factor of 1.
The question is; what is a suitable roll-over price and, more importantly, will people buy a roll-over product if it means a more expensive bundle?
/footnote/
BTW, If anyone can find a way to store unused capacity, we should really talk.