"Ezen a ponton az 'abs' felesleges, hiszen két 'unsigned' különbsége is 'unsigned'."
Ez nem így van. Az abs meghívása átkonvertálja az 'unsigned int'-et 'int'-re, és szépen visszajön az előjel, mintha 'int' értékekkel dolgozott volna a kód (igaz, a unsigned->signed konverzió implementation-defined, de kb. minden impl. azt csinálja, amit "kell").
Itt a kód azért nem fordul le, mert a GCC 6 óta az stdlib-ben nem csak 'abs(int)' van, hanem overloadolva van, és emiatt a compiler nem tudja eldönteni, melyiket használja.
Szóval a programozó kolléga nem bukott azért meg, bár ez a kód amúgy tényleg eléggé ronda, soha nem írnék le ilyet.