Por que o fluxo de arquivo amplo em C ++ restringe os dados gravados por padrão?

Honestamente, eu simplesmente não obtenho a seguinte decisão de projeto na biblioteca C ++ Standard. Ao escrever caracteres largos em um arquivo, owofstream convertewchar_t para dentrochar personagens:

#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!
}

Estou ciente de que isso tem a ver com o padrãocodecvt. Há simcodecvt parautf8 emBoost. Além disso, existecodecvt parautf16 porMartin York aqui em SO. A questão éporque astandard codecvt converte caracteres largos? Por que não escrever os personagens como eles são!

Além disso, vamos nos tornar reaisunicode streams com C ++ 0x ou estou faltando alguma coisa aqui?

questionAnswers(5)

yourAnswerToTheQuestion