Don't O2 offer 12 month iPhone contracts now? I know I got one when I upgraded to a 4S.
So with that in mind look at the iPhone contracts. £47 a month gets you 900 minutes, unlimited text and 500mb of data. So £564 for the 12 month contract.
A 16GB 4S is bugger all on contract say £99 based on the 18 month option being £49, can't actually get the 12 month prices for a 16GB now for some reason. So £664 for the same deal and you own the phone at the end of 12 months which is worth roughly £300 when you sell it on. So £4 more and you get a better contract and own the phone.
Absolutely pointless even buying them sim free when you get a 12 month contract now. I know when I worked out how much my 64GB would be + a £20 simplicity tariff it came to more than getting it via a 12 month contract paying £42 a month. Which is what I was paying in the first place so just a case of buying the phone. Which my old 32GB 4 when I sold it, paid for. So in reality my 4S has nothing to upgrade to, as I would have kept the contract going anyway.
The thing with iPhones, once you have bought into them. Due to them keeping their money and being usually worth around £300 even on envirophone etc. It means it is not that expensive to trade up to the newer model.