If there are reasonable opt-outs, then you can have your cake and eat it without jumping ship to Linux/FOSS. (And, to a lesser extent, you might face the same problems there, e.g. with Ubuntu)
The problem is that with all platforms, the opt outs are hard to find and, even worse, hard to even know when the opt outs even exist.
Opting out still leaves all the non-technical people who don't know about or understand the opt-out to whatever abuse MS (et al) wants to put in the OS?
Worse, you are still financially supporting these decisions by either buying the OS or adding to the usage counts. By "opting out" while still using the OS, you're still asking for more of this crap in the future.
The problem is that with all platforms, the opt outs are hard to find and, even worse, hard to even know when the opt outs even exist.