If price was the reason, we'd have phones with longer term support at a higher price point. The problem is that support is cheaper than making new stuff, but the companies would rather sell a more expensive good if they can prevent customers from buying the cheaper option.
Support is cheaper for customers because companies providing support have to invest into something customers want, but doesn't create the same competitive advantage in the market where stakes are always rising. I.e. companies are incentivized to replace rather than support because they need to amortize the cost of R&D that goes into making phones with more memory / storage / cameras / hoo-hoo-ga-ga. If instead the effort is diverted into support, that effort doesn't generate future revenues as much as the effort spent on, well, future technologies.
So, the customers don't get good service not because it's impossible or prohibitively expensive, but because of the lack of a free platform (equivalent to Linux on PC), and a lack of regulation that would make it necessary for manufacturers to provide longer term support to their products (which would've leveled the field, because everyone would have to provide similar length of service, and so the competitive edge would stay the same).
As long as the manufacturers are in the rats race for the fraction of the future market, they'll cut every corner possible to get a bigger slice. The cost and the price today aren't as much of a concern for them as the survival in the next few years.
On Android, that’s fractured: Qualcomm wants you buying a new phone every year or two because they only get paid for CPUs and Google doesn’t want to subsidize them with Play purchases.
This is amplified because the architecture prevents people from doing their own support. A PC user can run Linux even if Microsoft gives up because the boot loader isn’t locked to prevent it, although driver support does show there are still problems here for the fraction of hardware without robust open source drivers or documented firmware.
My ideal fix for this would be legislative, requiring mandatory minimum support lifetimes (say 7-10 years for at least prompt security updates) and some threshold for requiring boot loader unlocking. The only Android device I had was a Lenovo tablet which they never updated to the OS version released a month or so _before_ the hardware, and which became unsafe to use on the internet many years before the hardware failed (we used it as a white noise generator for a baby). That’s a ton of e-waste which could have been avoided if they weren’t allowed to just walk away from support because they didn’t sell enough units to care.
Until those ecosystem issues are fixed, dumping on a $150 phone for concessions that a $800-1000 phone doesn't have to make us pretty ridiculous.
Again, that is my point. No company has any incentive, or has made any moves to, fix the ecosystem. They're happy how there are no standards or documented APIs, how everything is a closed binary blob that changes from one insignificant version to the next. They don't demand any kind of support or openness from hardware suppliers, they don't form any standards or demand adherence to them, despite their massive market power (if Samsung wanted open or standards-compliant hardware, they'd get it), because they directly financially benefit from the broken status quo they created.
> concessions that a $800-1000 phone doesn't have to make
You can spend 2x that on an Android phone, and the software situation won't be any better. This is deliberate.
What do you mean? Wireless cards on PCs are dirt cheap and have fantastic forwards-compatibility with future OS releases. There's no reason mobile network cards should be any different.
> you still need a separate packaged image per phone model
Only if you insist on packaging the image yourself. If you don't lock bootloaders and provide API/ABI documentation on how to interact with your hardware (through a binary blob if necessary), the community will often do the rest.
The Android update dumpster fire is a self-inflicted problem.
We haven't had an IBM PC-level of openness from a phone hardware platform. Not one. Shitting on incremental improvements (like the serviceability of this Nokia) is counterproductive.