I don't think I agree with that. IMO the locale stuff should remain in kernel32. We can simply set the unix codepage in ntdll the same way we set the other codepages.
the only issue I have here is that most of the code needed for initialisation in has to be called after the unix codepage has been guessed, which is only possible after kernel32 has been loaded and its wine specific entry point has been called (which means calling back into ntdll with wine specific entry points). So, if I follow you, you would suggest to: 1/ pass the unix codepage (or its table) along the ansi & oem cp 2/ allow, in ntdll.wine_init_codepage, to make further initialization (which could depend on the various codepages)
A+