As MSDN says,
TheÂ
PolyTextOut function draws several strings using the font and text colors currently selected in the specified device context.
The article also mentions ExtTextOut as a simpler sister function:
To draw a single string of text, the application should call theÂ
ExtTextOut function.
It looks like the API is not so Unicode friendly. Code as simple as
PolyTextOut(L"Мама мыла раму");
PolyTextOut(L"Mother washed window");
PolyTextOut(L"ママソープフレーム");
PolyTextOut(L"დედრსáƒáƒžáƒœáƒ˜áƒ¡ კáƒáƒ კáƒáƒ¡áƒ˜");
ExtTextOut(L"Мама мыла раму");
ExtTextOut(L"Mother washed window");
ExtTextOut(L"ママソープフレーム");
ExtTextOut(L"დედრსáƒáƒžáƒœáƒ˜áƒ¡ კáƒáƒ კáƒáƒ¡áƒ˜");
Outputs correctly in case of ExtTextOut, while PolyTextOut stumbles on strings in Japanese, Georgian. All right, so why did it do Russian?

Cody Gray from StackOverflow comments:
Even though Visual Studio and non-ASCII characters is a known separate problem, I re-checked the test code in my system upgraded to Windows 8, Windows 8.1 and then to Windows 10 in the meantime since the post date. The problem is still present (same symptoms) in Windows 10 at the time of this comment.