It seems like there could be unexpected interactions with other services running on 127.0.0.1, which don't even have to be HTTP to cause problems - eg what if there's a service that echoes back the request in the response if it receives a request it doesn't understand? A remote web page could probably use that to bounce its request to your service but appear to come from 127.0.0.1.
> I just looked it up again and I'm 99% sure that web pages can't override the Origin header, especially when making cross-origin requests
What about other, potentially unprivileged software running on your machine that can?
If you've got rogue software running on your machine, all bets are off.
Not necessarily. It could be running in a sandbox, or as unprivileged user, and accessing your app's API over localhost would allow for privilege escalation.
I see your point. But in my book, that's still rogue software. And that's a terrible sandbox. :)
(Edit: I just looked it up again and I'm 99% sure that web pages can't override the Origin header, especially when making cross-origin requests.)