Cita: engo la mala costumbre de recurrir a stackoverflow cuando dudo sobre algún aspecto del lenguaje...
Bueno, yo también consulto habitualmente ese sitio, por supuesto, pero también entiendo que el valor de autoridad que puede tener no es universal. A propósito, quizá también te impresione saber que el autor del artículo que recomendaba es el creador de Stackoverflow.
Estaba viendo la segunda discusión que mencionas, [URL="http://stackoverflow.com/questions/402283/"]std::wstring VS std::string[/URL], y no veo que la conclusión sea que se deba evitar wchar_t o wstring, para nada. Por otro lado, la respuesta más votada es por demás inconsistente, y yo no sacaría ninguna conclusión a partir de ella, ni la que vos suponías ni ninguna otra. Basta prestar atención a uno de los comentarios
Cita: While this examples produces different results on Linux and Windows the C++ program contains implementation-defined behavior as to whether olè is encoded as UTF-8 or not. Further more, the reason you cannot natively stream wchar_t * to std::cout is because the types are incompatible resulting in an ill-formed program and it has nothing to do with the use of encodings. It's worth pointing out that whether you use std::string or std::wstring depends on your own encoding preference rather than the platform, especially if you want your code to be portable. – John Leidegren Aug 9 '12 at 9:37
En mi humilde experiencia, wchar_t y wstring han hecho lo que se esperaba de ellas. sin importar si era en ruso o castellano, si en Windows o en Linux. Debe ser que como no soy académico nunca encontré incompatibilidades.