Anything smaller than an int (or unsigned) is "sign extended" to an int (or unsigned) before any operations are applied.
Now it starts to make sense ... The 'it' I was talking about was an addition or subtraction, the result of which would-be outside the bounds of the type.
Specifically remembering a previous value and subtracting it from the current value to get the change, but doing this with a roll-over in between.
Now if the maths involved in doing this to a byte is actually performed on 16 bits ...
Well suffice to say I probably don't understand the finer points but the rational is now far clearer.