As a person who is still in the middle of c++ book for beginne, the only reason I know is for gui dev but I have a feeling that it's not the only one.
Mostly, for Graphics.
Then, Files.
Then, Networking.
Other Hardware communications.
Except for portable projects, I try to use WINAPI.
Basical PC things, as Reading mouse input, a CD, a COM port, Files or similar, and displaying the relative things on Screen.
Remember a PC is all about inputs and outputs.
Understanding winapi is, mostly, understanding how the operating system works.
Ah, another thing, timers.
It's still in the "Hardware" side of the PC anyways.