При этом нельзя сказать, что выравнивание не работает.

Вот такой тест:
## Код:
```
MODULE TestRecPack;
       
       IMPORT SYSTEM, Log;

       TYPE
               Aligned1 =  RECORD
                       b1: BYTE;
                       i1: INTEGER;
                       b2: BYTE;
                       i2: INTEGER;
                       b3: BYTE;
                       i3: INTEGER;
                       b4: BYTE;
                       i4: INTEGER;
               END;

               Aligned2 =  RECORD
                       b1, b2, b3, b4: BYTE;
                       i1, i2, i3, i4: INTEGER;
               END;
               
       PROCEDURE Start*;
               VAR
       BEGIN
               Log.String("Rec1: "); Log.Int(SIZE(Aligned1)); Log.Ln;
               Log.String("Rec2: ");Log.Int(SIZE(Aligned2)); Log.Ln;
       END Start;
       
END TestRecPack.

^Q TestRecPack.Start
```


Выдает:
## Код:
```
Rec1:  32
Rec2:  20
```


То есть размер структуры в памяти в этом случае зависит от порядка указания переменных. Это логично, если выравнивание работает, а упаковка нет.