Its the owners fault their cars throw trouble codes?
No, but many times trouble codes aren't indicators of actual trouble, and some patience is warranted. In the satellite world we call that a "single event upset" which means we have no clue what happened (a diagnosis-by-default after eliminating all other causes), but we power cycled the module and it came back on and seems to be working fine. So we shrug and go on with life.
Would you rather have a system that occasionally falsely reports problems but always reports real problems, or would you rather have a system that never falsely reports problems but occasionally fails to report an actual problem? Control system engineers would almost always rather engineer the former, especially where critical system components are concerned.
When an app on your $1,000 smartphone fails to launch correctly, or when you got the Blue Screen of Death on your computer as recently as a few years ago, did you call your phone provider or Best Buy and book it for a service appointment? No, you reboot it and when it doesn't happen again you shrug and go on with life.
But drivers, especially older drivers who can afford higher end vehicles that contain more computing power than the Space Shuttle have been conditioned with Idiot Lights like the CEL that only monitored critical systems (until emissions regulations forced them to instrument the gas cap and tie that to the CEL, which served to tell the driver they didn't fully tighten the gas cap). So if the car says "something is broken," the conditioned response is to take it to the dealer where they "fix something".
When consumers take their car to the dealer for a Single Event Upset and get their car back and the dealer tells them "we couldn't find anything wrong," that leads to unsatisfied consumers who think a) this car is unreliable, and b) my dealer service shop are a bunch of morons. So when it comes to vehicle software, the pressure is on the dealer to satisfy the consumer by fixing something, which usually means "reflashing the module."
But that in turn fills up service bays with vehicles that are probably totally fine, which frustrates customers who have more rare "real" problems, and this is especially true for many JLR customers who have complained they can't get a service appointment.
So now JLR and others are building in SOTA updates, mostly so they can conduct remote troubleshooting and update nervous or troublesome modules without the customer having to bring the vehicle in for an appointment. And that makes for more happy customers and better reliability statistics.