When I compared contracts and SIM deals, I only compared deals that I would actually use in the real world. Therefore I only compared deals that had high or unlimited data and texts. I wasn't so bothered about calls. I made a big spreadsheet and everything, and contracts were typically £100-£300 more expensive for the two year term.
Anyway, the point is that O2's cheapest contract which you mention never entered my calculations, and is still more expensive - £80 more expensive - than the unlimited data SIM I bought alongside my unlocked iPhone!
If I were really looking to save money and not just get the best deal, I could get an unlocked 32gb iPhone and pay £6.50/month, totalling £755 for two years, which completely blows the cheapest contract out of the water by a good £200.
For me, getting an unlocked iPhone and a monthly SIM is a no-brainer.