That's just an implementation detail. Conceptually, a Pike string is a sequence of integers in the range 0..2147483647 representing ISO-10646-1 characters.
Actually -2147483648..2147483647, where 0..2147483647 represent ISO-10646-1 characters, and the others are for application use.
"\x80000000"[0];
Result: -2147483648
"\x7fffffff"[0];
Result: 2147483647
Note that using negative "characters" forces the string width to 32:
String.width((string)({-1}));
Result: 32