for example, does:
wchar_t x;
translate to:
unsigned short x;
No, it doesn't. It translates to 'a wide character.' Making any assumptions about what that happens to be on a particular platform is incorrect, and defeats the entire purpose of having a wchar_t in the first place.
The point of using an abstraction is to separate the semantic meaning of the type from its underlying representation.