Вообще, можно.
Допустим, ADR(rec.field1) - ADR(rec.field2). Но будет громоздко в коде, думаю.
А, и это уже будет не константа.

Если добавочный заголовок сделать типом, то да, можно SIZE(ExtHeader).

В итоге, поскольку на уровне такого кода поля используются многовариантно, для экономии и т.п., то вряд ли это что-то улучшить

Если только отрефакторить с union.