Yep, it's a stupid system IMO, coming from Australia where the caller pays all. It sucks even more when some company cold-calls me trying to sell me something, I end up paying for the call! Not to mention being charged in and out SMS, that's just plain double-dipping...
Called-party-pays (the system in the US, Canada, China, Singapore, etc.) makes more economic sense - for this reason Australia is considering switching.
If you have "free" incoming calls, then anyone who wants to call you has to pay a rate which set by your mobile carrier.
However, the people who call you have no market power over that rate. If they don't like it, they can't switch carriers, because they're not the customer - you are.
The result is that mobile termination costs tend to be quite high in caller-pays markets, often making up the bulk of revenues.
As you can imagine, a market in which the bulk of revenues are levied as a virtual tax on people with no market power (the callers) does not make for effective competition.
This is why total per-minute call costs (cost of dialing plus cost of answering the same call) are on average higher in Europe than in USA. And it's why regulators in Europe are constantly wringing their hands over fiddling with the market because they can't get rates down anywhere near the marginal costs of providing the service.
Wholesale origination + termination (total end-to-end cost for a call) in the USA is around €0,01. In many European markets it's €0.10 or more.
In the long run I think you will find that most non-monopoly markets will move to called-party-pays as Asian countries are starting to, and USA/Canada have done all along. The only alternatives are heavy-handed regulation, or persistently high charges and the accompanying economic friction.
There are easy solutions for the telemarketer problem - for example, just regulate that the first 30 seconds of an incoming call have to be free unless it is a number you have dialed before.