Я бы назвал это «определением типа вложенной записи». Он существует с момента появления Turbo Pascal IIRC и не имеет ничего общего с недавно введенными «анонимными методами» (по крайней мере, в этом столетии), которые представляют собой гораздо более сложного зверя, поскольку он захватывает с ним некоторый контекст выполнения.
Я не вижу причин, по которым это может показаться устаревшим или обескураженным. Это идеальная правильная структура, которая имеет смысл с точки зрения кода, поскольку она собирает некоторые поля в логическом родительском поле. Конечно, если вы ожидаете получить к нему доступ независимо, выделенное определение типа того стоит. Производительность будет такой же, было бы просто удобнее, если бы YAGNI (меньше печатал, вся запись видна с первого взгляда).
Таким образом, вы можете начать с написания таких вложенных записей, а затем при необходимости определить выделенный тип - например, если добавление некоторых методов может сделать ваш код более читабельным и обслуживаемым. На практике использование вложенных записей в определениях типов может уменьшить возможное изменение кода в вашей кодовой базе, поскольку позднее добавление явного определения типа не нарушит доступ к его элементам из существующего кода.
Обратите внимание, что для него есть RTTI, как отдельная запись, названная в честь "основной" записи (что-то вроде '__TMyRec_FAnonRec'
). Таким образом, с точки зрения RTTI, это не анонимно. ;)