The only thing forcing most of us to upgrade every 3 years is the fact that most phones now come with their batteries are either soldered on (in the lower end versions) or come with connectors (most often I think) but replacement requires prying open the case and specialized tools/knowledge.
Honestly, today's phones are an overkill for most mobile computing tasks except for a very small niche of users who might run very high end games. And even there it's not a given.
Battery replacement can be done in specialized shops on almost any phone for a fair price.
My bigger issue is usually that the phones get so heavily outdated that banking apps stop working. And it's based on pure luck if the modding community build something great for my phone so I at least could use it as server, cam, or whatever. Also the charging slots breaking / turning unreliable which most wouldn't repair on a $100-$200 phone.
I fear it's not just about 3rd battery quality but the software driver side where calibration needs to redone for a new battery. If this is locked because of "security" or just inferior then oops, replacements never match first party.
I also had to upgrade a phone for a banking app and a gov pay-your-taxes app (in a certain non-US jurisdiction).
Very hard to understand why that should be. Even the most scary conspiracy theorists would not claim that banks and govs try to force phone tech refresh... unless ... it is really about spyware bloat :)
I immediately put a transparent case around my device as soon as I get it and put a screen guard on it as well. My wife mocks me saying that it totally kills the device's looks but considering how integral having a functioning phone at all times is to... well, existing (and accessing any Govt. service in my country), I take the hit in aesthetics for extra durability.
As a result, all my phones end up looking pristine several years into them being used.
Modern phones are really resistant. I have an almost 5 years phone that I never used a case or a screen guard with it and have been fine with this decision.
Modern devices are already massive, putting a case on then make them even bigger, and in my opnion more prone for falling from your hands.
And I have the extra-advantage of being able to easily locate my phone on family gatherings as I am usually the only one who doesn't have a case. :-)
I think the parent's point about "looking pristine" is less about the aesthetics of it than a way to say that it's intact and fully functional, no wear and tear that would force the user to replace it
I keep it in cover and film on screen since except IT in my free time I like masonry and I drop my phone like 10 times a month and it is still alive after four years :D
I replace my batteries myself and relatively frequently, but still need a new phone every 3 to 4 years because things just change enough.
There's a myriad of small reasons, my last one was because my main payment app was taking 4s to create a damn QRCode while the casher and I stare at the blank page, and also for how hard it was to just answer calls from the notification screen as the phone was struggling at just multi-tasking.
And that was on top of the expending shutter lag and and many newer OS functionalities just not properly working.
And it's not the phone's fault per se, the most critical apps are really crappy. But there's also no incentives for them to be efficient, and they'll keep being crappier and crappier, and I'll probably need another phone in 4 or 5 years either way.
Replaced my kid's phone batteries in a generic shop a couple months ago. Yes, it is not as convenient as just replacing a battery in my old nokia phones but on the other side, I wouldn't like to have an ugly battery cover just because of the convenience of replacing the battery myself every 3 or 4 years.
It is not like we live in the early 2000s where the heavy road warriors had to have a spare battery on their backpacks because the phones would be dead after a coast-to-coast flight.
I was on an iPhone X for six years (bought it used one year old), and had the battery replaced three times. No big deal.
The reason I upgraded was that I was wasting literal minutes per day waiting for apps to load. I live in China, and for some reason the apps here are beyond outrageous in the amount of resources they use. Showing a QR payment code in WeChat, or opening a shared bike in Meituan, frequently took on the order of 10 seconds. I assume the phone was just chewing on a terrifying amount of JavaScript.
I could only keep 2 of these monster apps open at a time. Opening a third would OOM kill one of the other two.
iPhone 16 pro and these actions are basically instant.
Honestly, today's phones are an overkill for most mobile computing tasks except for a very small niche of users who might run very high end games. And even there it's not a given.