Before switching to GNU gettext, charsets in locale variables are honored when displaying translations (such as $LANG=zh_HK.UTF-8). But after the switch it is no more useful. Right now the only way to override charset is to use the CHARSET variable.
Actually such change is probably better for normal users (who wouldn't change console codepage). Considering whether a better compromise can be achieved, or we just accept the status quo.