The intent, as I understand it, is that "declaration should look like use", so that the base type is on the left. If you declare
int *foo;
then
*foo
is an int.
IMHO the existence of "cdecl" is evidence that it might not have been the right choice.