And to tak up your example you can either have an 8bit unsigned number which ranges from 0 to 255 an will wrap over to 0 again with no negative value possible or you hav an signed 8bit which ranges 0..+127..-128..-1..0.
This now taken for a unsigned 32bit number - as
millis() and related variables - you get 0..(2^32-1) with no possibility for negative results.
In other words
[unsigned] - [unsigned] can never result in a negative number (unless you overrule the automatic type resolution of the compiler).
Addition: In your example above, you would never have
258 - 254, since 8 bit only goes to
255. So you'd rather have
2 - 254 which would not result in