If all curl did was "opening a socket and issuing a GET" it would be about a hundred lines long, including input validation and two kinds of errors.
It does a lot more than that, because the Internet isn't actually that simple. You should look at the first paragraph of https://curl.se rather than have me rehash it here.
CURL supports plenty of protocols, but at the end of the day they're all application-layer and should've easily been written as platform-agnostic business logic. If CURL was architected properly, keeping any OS-specific code behind platform-agnostic interfaces - porting it across operating systems should not have been an issue.
When the codebase depends on POSIX and platform-specific quirks everywhere, putting the blame on the operating system when it's time to port things is hilarious.
I don't see posts like this from the people who had to port Portal 2 to run natively on Linux, as an example. If Portal 2 (a codebase you can safely assume is 1000x more complex) made it fine without the drama, there's no reason CURL can't follow suit (unless the architecture is botched).
Opening a socket and issuing a GET call is somehow too difficult on Windows?
Will you entertain the possibility that CURL's architecture is to blame?