The problem with phones companys is they pay a lot of money for the handsets. A motorola V3 costs £300 to buy in. If they give people a free phone every year profit is pretty much zero. (unless its a super high spender).
coming as a new customer they take the risk that you are going to be a super high spender and give you a huge discount on the phone. People never used to complain about having to pay for a phone. So spoilt nowadays.
Easiest way to get cheap phones is change between networks every year. People who upgrade are silly. no promotional tariffs and no super cheap phones.