it doesnt make much sense for it to print two different strings...ok
well, maybe its just me and my system (cos it prints the same value
twice!)
There is a difference between what happens on most (or even all)
current implementations and what the standard requires to happen. In
this case, the standard does not require the two outputs to be the
same. It's not that you (and I) can't see any reason for it to print
two different strings, it's that there is no reason in the standard
that it cannot.
There is also a difference between the limits of one's experience and
imagination and the real world. There are people who fervently
believe '0'-0x30 == 0, 'i'+1 == 'j', or an implementation of strlen or
strcpy requires the source code to have a loop looking at each
character in turn. (None of these are true on my system.) The fact
that I don't know of an implementation where sizeof(int) == 7 or
CHAR_BITS == 11 is irrelevant as far as the standard is concerned.