Attığın kaynağa bakınca daha iyi anladım. Libde direk stLocale'den gelen charset datasını m_stLocale'e eşitliyor. Ama zaten eşit olup olmadığını kontrol etmiyor.
std::assign düşmesinin sebebi de strcpy ile nerdeyse aynı mantıkla çalışıyor. Aynı datayı aynı datayayla değiştirmeye çalıştığında...