¿Por qué el flujo de archivos ancho en C ++ limita los datos escritos de forma predeterminada?

Honestamente, no obtengo la siguiente decisión de diseño en la biblioteca estándar de C ++. Al escribir caracteres anchos en un archivo, elwofstream conversoswchar_t dentrochar caracteres:

#include <fstream>
#include <string>

int main()
{
    using namespace std;

    wstring someString = L"Hello StackOverflow!";
    wofstream file(L"Test.txt");

    file << someString; // the output file will consist of ASCII characters!
}

Soy consciente de que esto tiene que ver con el estándar.codecvt. Ahi estacodecvt&nbsp;parautf8&nbsp;enBoost. Además, hay unacodecvt&nbsp;parautf16&nbsp;porMartin York aquí en SO. La pregunta espor qué&nbsp;lastandard codecvt&nbsp;convierte caracteres anchos? ¿Por qué no escribir los personajes como son?

Además, vamos a ser realesunicode streams&nbsp;con C ++ 0x o me estoy perdiendo algo aquí?