It seems that GDM itself is the cause. Whenever it updates the /var/cache/gdm/$user/dmrc, it adds some useless utf8 marker to the locale e.g. my locale is fi_FI.UTF-8 which gets mingled into fi_FI.UTF-8.utf8 and that is what prevents the login from taking place. Editing that dmrc from vcons to remove the extraneous .utf8 components fixed the GDM login process for good.
It seems that GDM itself is the cause. Whenever it updates the /var/cache/ gdm/$user/ dmrc, it adds some useless utf8 marker to the locale e.g. my locale is fi_FI.UTF-8 which gets mingled into fi_FI.UTF-8.utf8 and that is what prevents the login from taking place. Editing that dmrc from vcons to remove the extraneous .utf8 components fixed the GDM login process for good.