I think the question here is, is there anything that can be done about it?
I suspect that the number of systems where the smallest addressable unit is 16bit to be quite rare.
I would expect from a theoretical stand point that in such systems a char would have 16bits instead of 8.
In practice the reason why they are 16bits is because it's the only available register size, and as such the memory that they would have available would be very limited. In those systems you would still want a char to be 8 bit, and you
would store 2chars in 1 memory unit in order to save the limited memory you have.
Given the memory limitation of such a system, you probably don't have much of an operating system to run on, and probably a lot of the standard components wouldn't quite fit anyways so you are not looking at a system that could be fully
standard compliant anyways.
The point here being that if a system has this weird behavior, it does so for a reason, and because of that reason there really isn't much you can do about it. Whatever limited ABI it might have, you wouldn't want to change how those pointers
work, regardless of the standard might say.
Systems that can afford to be standard compliant won't have this problem.
So, it seems that any change in this area would either be met with either “it makes no difference in my system” (so nothing changes) or “I’ve a reason not to do this, so… well I guess this is just going to be another way in which my system
is going to be incompatible with the standard” (and nothing changes).
And after all had been done, nothing in practice would have changed.
So what is the point of this?