In principle I'm asking, what makes ether on the testnet worthless and ether on the production net valuable. On both nets, contracts and transactions are included in blocks which are mined, so electricity is spent on both.
Technically they are equal, they only have different parameters and in particular different genesis block and different networkId. Two Ξthereum nodes can connect each others only when they are using the same genesis block and the same networkId. That's it.
When you are talking about testnet you are usually referring to Morden, an specific Ξthereum blockchain that the community agreed to use for test purpose. With this agreement in place, all Ξthereum clients use a specific genesis block and networkId = 2 when you start the testnet. The genesis block was set with a very low difficulty so everyone can essentially try mining blocks or, in any case, he can call a faucet to get ETHs.
Using Morden is sometimes more useful then private net to test smart contracts, transactions and mining because over there you can find other other real developers with real nodes (i.e. other real and different clients, real latency, and so on)
In early stage of development, I suggest to use a private net instead of Morden. Again, it is technically identical to Morden and Frontier (the main net with networkId = 1) but there you are the God and you can test everything without worrying about involving other real peers around the world.
Last note: why ETHs used over the testnet have no values? The only reason is because the community does not assign value to them. In every cryptocurrency the value comes from how much value people assign to that digital asset. And usually people does not assign value to something that is abundant and there for all to be grabbed. ΞTH over Morden are easy and free money, so they can't be valuable at all, at least until you find someone that agree with you to assign value to them.