В ББ хватает мест, где SHORT используется для приведения значений. Типа такого:
PROCEDURE Write4 (x: INTEGER);
BEGIN
Ro.WriteByte(SHORT(SHORT(x MOD 256))); x := x DIV 256;
Ro.WriteByte(SHORT(SHORT(x MOD 256))); x := x DIV 256;
Ro.WriteByte(SHORT(SHORT(x MOD 256))); x := x DIV 256;
Ro.WriteByte(SHORT(SHORT(x MOD 256)))
END Write4;
И если включить все проверки, он скорее всего не заработает. Вероятно, авторы понимают семантику SHORT несколько иначе.
Хотя иногда случаются приступы семантической чистоты.
IF ORD(str[i]) > MAX(BYTE) THEN w.WriteByte(SHORT(SHORT(ORD(str[i]) - 256)))
ELSE w.WriteByte(SHORT(SHORT(ORD(str[i]))))
END;
В осуждаемых же строчках 128 вычитается явно намеренно, с какой-то неизвестной нам целью.