The C language, and those that borrowed from it, make the tacit assumption that the high bit indicates a negative number unless it is declared unsigned...

An interesting assumption. I don't believe C makes that assumption at all. The underlying hardware makes that assumption, because that's simply the way it works. C (the language) doesn't care. An implementation of C cares, because it has to map tokens that represent negative values to the actual binary representation of the value.

Now it has been several Decades since I saw a machine that doesn't uset two's complement arithmetic. The first one was an NCR 315 that our local bank used when I was in high school in 1968...It was a DECIMAL machine that used XS-3 notation internally. the last one I saw was a CDC Star, which is a 60-bit (!) machine that used ones complement artihmetic...which has a unique value for negative zero. The NCR machine antedated C by something like a decade, but were a C compiler to exist for that machine, it could not assume the high-order bit of a value made it negative.