I didn't have this issue recently on cancelling two contracts with three.
One number I took to T-mobile , issued PAC code and ported within the 30 days. I was clearly told that if I didn't use the PAC code then the contract would roll on month by month. They gave me the option to not have the PAC code and therefore cancelling the contract then. I was clearly told how they did it and I had no issues.
Even if what three do as mentioned above, I am not sure you can really blame them. You can't have a PAC code and wait to use it indefinitely.
I hate all mobile phone companies and contracts. They are full of so much small print and crap, they know full well most people don't read them, so they put terrible terms in them.
Once I saw a contract from Fresh ( I think carphone warehouse) - Offered 1gb per month data, but the small print stated that you could only use 17mb of data a day and then would be charge £1 per MB... You have no leg to stand on though if you sign it and use it.