All the difficulty seems to be people trying to do crazy, esoteric things there's no good reason to be doing in the first place.
What are you saying?
CORS is defending against a particular class of attack, which is indistinguishable from the scenario you outlined: evilexample.com wants to get access to your private repos on GitHub (which can be reached purely through GET requests).
> Why do you need to run that on the client?
Because it's a good idea (less wasteful) to do that on the client. Rather than wasting bandwidth rerouting it via my own server.
What?! For responding to OPTIONS requests and setting the right header on responses from your backend?
I don't really see the problems you're citing to be a cause of "complexity in CORS" either, but more not having a proper development setup or similar. CORS is specifically about domains. As long as you set the frontend domain as accepted origin in your responses from the backend (and respond to OPTIONS), you're good to go.