Still, doesn’t mitigate attacks against non-HTTP speakers.
Forgoing CORS and making all inter domain requests user opt-in would make the web experience a lot worse, IMO. Making all intranet or localhost requests user opt-in seems less disruptive.
In the case of scanning, a CORS denial can still reveal information about the user's internal network, as a CORS denial is a different result than a network timeout or a TCP RST.
That a script is able to gather information about an origin that did not it in seems like a serious bug to me.