Že se zkompiluje tomu bych věřil, ale je trochu rozdíl jestli 127 + 1 je 128 nebo -128, zvlášť jestli se to pak třeba potichu zkonvertuje na nějaký širší typ ve kterém už to není bitově totéž.
O to právě jde. Ne aby to kompilátor vzal, ale aby to pak fungovalo správně v obou případech. Aby byly zdrojáky napsané správně. Je snadné to někde nedomyslet, je potřeba to hlídat. Signed i unsigned mají svá pro a proti, char je obojetný a snadno se na to zapomene.