It's not just that new phones are making the old ones cheaper, phone specs have been more-than-useable for years now. So a £150 phone can do everything that a two year old flagship could do, and can do everything the average punter wants.
So you have a choice, spend £300+ on a brand new phone, or spend £100 on a brand new phone that can do all the same stuff. The expensive phone probably has bigger numbers (eg CPU speed), but not anything that most people will notice day to day.
So why go for the flagship models?