Pure software is a large part of it certainly. But multiple layers of it. But I include in software the app, the APIs, the OS services and kernel, low level translation. When talking about hypotheticals like this, one could even include Processor microcode and firmware under a broad blanket of "software abstraction". When you include all that, there is a lot of redundant work and cascading bugs and workarounds to lower level bugs that generate more bugs further down the line. I understand why things are like that. Software and digital tech I'm general has evolved under an unbelievable pace during the last half century. But the industry as a whole has been sweeping problems under the rug and building hacks around it throughout the whole period and maybe time has come when it might be a good idea to start reconsidering this whole mess again.
Sadly it is like that. Everything builds upon previous stuff that still needs to keep working. Browser needs to support 100 image, video, and audio formats, multiple script languages, dozens of fonts, thousands of other things. Same for OS. Sadly even the same for games: Old API still needs support, game must support Steam overlays and achievement tracking, loading updates in the background, keep connected to your buddy list... an endless pile of essential things, worth to spend one core just for all this crap they say.
The times of an Atari ST, which booted GUI OS just from ROM, never any updates... they are gone.
If the guy from the OP thinks it is necessary to have low latency text input he is likely wrong, and if he thinks he could write an 'efficient' browser by not relying on any pile of crap, i'd like to see that. He will end up with the same huge pile of bloat, if he ever succeeds to finish.
But if you don't like this (nobody does), then you could use something like Raspberry Pi. Likely the slickest device you can get in modern times? Not sure it if can run a neat OS other than Android, but if so you could write / use just the absolutely necessary software without any extra functionality. No FB of course, so you would not be happy with that either. At some point you would give up and admit there is no escape from all those requirements that modern software has to fulfill.
"I'm sure they could be multiple thousand times faster, if software was more tight and neat."
No, not that much. If i'd have to guess for a total average maybe a factor of 2 or 3 mostly, rarely 10. (pure guessing) But if you take the time to optimize the shit out of everything you never get anything done and finished stuff is outdated already.
There is also another motivation to keep selling new hardware before the old gen is maxed out, but this is not the reason for this inefficiency. The reason is simply growing functionality and necessary compromises - a net effect, not something everybody does wrong by intention.
If you would make a start up about a new computer system, with optimized OS and no bloat, it would be just a matter of time until you sit in the same boat as the others.