I wonder if your assumptions are correct. They are probably just using gethostbyname() / getaddrinfo() to find the IP and then it's the OS (Windows) that is responsible for the behavior you're seeing.
As I'm sure you know those function are part of socket programming functions of the OS. Based on BSD originally but Microsoft must have added code to deal with netbios, wins and whatever they've been doing since the days of Wfw.
Linux by comparison only deals with name resolution by DNS and manual hosts files. I can't think of anything else right now at least.