Ah, you've noticed then? :-)
I'm afraid you are spot on with what you say, and the problems are endemic in almost all consumer electronics companies (where, of course the 'electronics' is increasingly almost exclusively 'software'). The basic issues are:
- Timescales. There is never enough time. Ever.
- Managers that have strange priorities and odd ideas about what is acceptable and what is not.
- Patents. The industry is so riddled with this stuff now that virtually all products are purposely sub-optimal to avoid some patent or other.
- Software kids that are (quite frankly) ...and I'll be polite here ...crap. They have no idea about embedded systems (I can only guess they were taught on a PC with Java, or maybe Python, and gigabytes of memory and trillions of ops/sec). They often have no idea about good software design practice (sorry, did I say 'design'? Oops!). They can't code even if they you pay them (oh, hang on, they ARE being paid!). They're just not up to it.
One other problem that I have seen time and time again is the culture surrounding production of software. This comes from the yanks, but unfortunately has been picked-up by pretty much everyone in the far east, which is why most of the consumer stuff these days is rubbish. That is, given a software project, they chop it up in teeny tiny bits, give each teeny tiny bit to one person, and then try and glue it all together at the end. And while said bod is working on his/her teeny tiny bit, he/she comes across a problem that can't be immediately solved, they decide to split the problem off into an even smaller teeny tiny bit in the (apparent) hope that someone else will fix it at some point in the future. This means that the difficult stuff gets left later and later so when it is eventually tackled, it's done in a rush and probably by someone who's either not very good or who's been working 18 hours/day for the last month (not a joke) to get the thing out of the door. Of course, when it comes to gluing all these teeny bits together, the glue is often bigger than the "working" (I use the term loosely) code, and the whole thing needs a processor upgrade to run at all!! I wish it was funny, but it's not.
These issues all combine and result in products that are far far from optimal. When, for example, did it become acceptable for my DVD player to take 2 minutes to boot up? My old DVD player started up almost instantly. The EPG on my TV often craps out and I have to switch it off. Why? (That's a rhetorical question by the way, I know exactly why).
As for you point re warranties, this was supposed to have been tackled years ago by re-defining software as "goods" rather than as a "service". For reasons unknown, this never happened. If is had, then the software would be subject to the sale of goods act (notably the bit about "fit for purpose"). Your TV and DVD player etc might be a whole lot more reliable if this happened.