Most people don't buy $800 phone, they pay $30+/mo for two years until it is paid off or they trade it in for something newer and continue paying $30+/mo.
$30/mo is comparable to $20/mo for most people, and they get the newest shiniest thing (and non-tech people don't know that Android phones don't get updates after the new model comes out).