По логике работы /etc/profile.d/0lang.sh при уже установленной переменной LANG переопределение в ~/.i18n и /etc/sysconfig/i18n не происходит. С недавних пор при запуске /etc/profile.d/0lang.sh LANG уже проинициализирована (даже в sysvinit). Было бы логично даже при наличии инициализированной $LANG переназначать из ~/.i18n, оставляя /etc/sysconfig/i18n как fallback. Это позволит при любых пертурбациях иметь рутовую консоль с LANG=C, как было в старые добрые времена.