Since Windows 10 now comes with an official Linux subsystem, why not just use POSIX APIs and conventions everywhere, and not bother with Windows-specific code if possible?
For one, because the Linux subsystem is an optional install. If you're making anything user-facing you can't rely on it being there - it's really a tool for developers, not end-users.
Depends on what type of application you are making. For a library that can be used in a "real" graphical Windows application, you can't make a posix type shortcut.
I think "if possible" is (at least still) very rarely the case that it is.
Because this leaks to the user. For example, you'll be dealing with paths like /mnt/c/..., which, if you surface it in your UI, will rather confuse someone who expects C:\...
And speaking of UI, that's one major hurdle right there.