The very first sentence is factually inaccurate:
In the early days of Bitcoin, there was no-such thing as a “non-mining full node”. Every miner was a node and every node was a miner.
Not true. There was always an option to mine or not to mine. I mined for a month and then stopped, since it was burning my lap to run the CPU all the time. After January 2011 my full node was very definitely a non-mining full node.
the moment the majority of miners would start performing fraud, Bitcoin will become worthless and noone will trust it any longer
That’s not true. If the majority of miners start mining invalid blocks, the exchanges and real users (the ones validating the blocks they accept) would reject those blocks. The dishonest miners have effectively resigned from the network and in time the difficulty would adjust, allowing the remaining honest miners to earn more coins per unit hashrate.
Miners know people will retaliate by changing the proof of work system to make the miners’s equipment obsolete.
Not even that. We would simply reject their blocks. We can do this because we are running fully validating nodes.
Neither a “non-mining full node” nor an SPV client will prevent a majority of miners from doing an upgrade through a hard fork.
My non-mining full node can’t stop miners from resigning from the network and going to work on an altcoin. But it can detect when they do so, and reject their invalid blocks. That’s the point. Miners don’t get to set the consensus rules; they get to enforce them. If they don’t enforce the consensus rules, they aren’t mining Bitcoin. They’re mining an altcoin, and my full node will reject their altcoin blocks.
you will need to update your “non-mining full node” software to keep using the Bitcoin Network
No, that’s not true. I will need to update my node software if I wish to switch to an altcoin. If I want to stick with Bitcoin I don’t need to update anything.
Connecting directly to a trusted mining full node is the only way to make sure your transaction has safely arrived
“trusted mining full node” — I think you’re missing the point. We aren’t meant to be trusting third parties. If you want to have to trust third parties I would recommend using PayPal or some other centralized legacy system.
This makes zero confirmation transactions much safer
Zero confirmation transactions have never been safe, and never will be. Miners are under no obligation to mine the first version of a transaction they see. There is nothing to stop them mining a high-fee double-spend transaction even if it doesn’t bear the “replace by fee” mark.
If everyone runs a “non-mining full node” and there’s a hard fork upgrade, a lot of clients would become obsolete
If there’s a hard fork upgrade, by definition there is consensus for it, and so the people running full nodes would update their software. If instead there’s a hard fork corporate takeover attack on the network, the full nodes won’t update their software and will continue to operate on the Bitcoin network, unaffected by the malicious hard fork. This is a good thing.
If most people would run an SPV client instead, they wouldn’t notice anything and just follow the longest chain
That would be a problem. People might find themselves using B2Xcoin without even knowing it. It is a mistake to use SPV clients and trust that the miners won’t switch to the wrong consensus rules without you knowing about it.
Upgrades could happen faster and with a lot less fuss than today
The same goes for corporate takeovers. It must be inconvenient to have people running their own full nodes getting in the way of big business co-opting Bitcoin. Why don’t we all just trust you and let you twist Bitcoin any way you want to? Double the block rewards? Sure, don’t even bother asking me if I’m OK with it — I’m just an SPV user after all. Roll-back transactions arbitrarily? Don’t mind if you do. I won’t even notice, I’m an SPV user.
No thanks.
But 99% of users can do perfectly fine with an SPV client, and everyone would be better off as a result
For some very specific values of “everyone”.
