Well, chars are sometimes unsigned too, notably in character escapes. I.e. it's "\37777777777" and not "-1" or something.
I also remember there was a bit of confusion wrt this in %c to sprintf and sscanf quite some time ago, but it seems to be sorted out now.