Looking at msvcrt's code, it starts to look like a bit much. Take a peek at dlls/msvcrt/file.c, "_open" and "MSVCRT__sopen" functions to get an idea of what I was hoping to avoid.
msvcrt does a lot more than you need (and also a bit more than the standard C library).
Looking at dlls/kernel/file.c, somehow things are much simpler (!?). I will do some experimentation with "_lopen" and co. (and read the api doc on MSDN) but presumably -- hopefully, judging by the names -- the "_l" API's will be close enough to "_open" & co. to avoid some cut-and-paste development.
Normally, the _l* API is very close to the C standard library, but moving to the win32 API is not too hard.
If not... there's more than one way to skin a cat.
Windows surely does provide lots of tools for this to happen A+