I don't think it's a bug. Looks like all wide char functions for files just transforms char to wchar and vise versa when needed. Too bad there is no easy way.
Well, there's a not terribly hard way.
This is untested so be ready to debug...
wchar_t buffer[128] // size to need
FILE f = wfopen(L"Test.uni",L"wb");
swprintf(buffer,128,L"%ls",L"This is a test string");
fwrite(buffer, sizeof(wchar_t), wcslen(buffer),f);
fclose(f);
Open the file in a text editor and see if it's written the unicode (wchar) version.
It will get easier when printing wide strings instead of literals, there you can just give it the address of the string...