Юрий писал(а):Я считаю что это бага в FP
так как вся суть и прелесть использования Типа_ссылки_на_класс теряется
Не понятно, в чем баг-то? Использовать 
TClass для создания экземпляра класса использующего делегацию, по сути, явная ошибка.
Да, можно было бы в реализации 
FPC-го 
TList-а использовать проверку на 
nil, но что это даст? Не даст по рукам экспериментатору? Да, я бы ожидал, что экспериментатор, после получения ошибки, изучит предмет и решит проблему правильно, а не родит 
AV в самый неожиданный момент и порчу не аллоцированных для класса данных (это я про 
TList(theClass.Create).Create).
Чтобы по канонам все сделать, нужно:
1. Объявить конструктор виртуальным у 
TList- Код: Выделить всё
- type
 TVList = class(TList)
 public
 contructor Create; virtual;
 end;
2. Объявить ссылку на класс:
- Код: Выделить всё
- type
 TVListClass = class of TVList;
3. Тогда можно смело использовать, к примеру так:
- Код: Выделить всё
- procedure AAA;
 var
 theClass: TVListClass;
 L: TList;
 begin
 theClass := TVList;
 L := theClass.Create;
 try
 ShowMessage(L.ClassName);
 if L.Count = 0 then
 L.Add(nil);
 finally
 L.Free;
 end;
 end;