Spannende Frage. Ich würde es intuitiv so machen:
Delphi-Quellcode:
private
FItem: IFooItem;
FFooItem: IFooFooItem;
und dann im Kontruktor:
Delphi-Quellcode:
constructor TFooOwner.Create(const AItem: TFooItem);
begin
inherited Create;
FItem := AItem;
FFooItem := AItem;
end;
Das mit der Referenzzählung ist immer spaßig, man kann dann aber auch über Logging der aktuellen Referenzanzahl einiges schneller aufdecken als im Debugger.