Ja, wenn man es falsch behandetl, dann ist es normal.
Wenn du das Interface nutzt, dann behandelt es besser
immer als Interface.
Delphi-Quellcode:
TBar=class(TInterfacedObject, IBar)
FFoo: IFoo; <<<<<<<
...
function GetFoo: IFoo;
...
end;
Object > Interface = ein Interface wird erstellt und somit wird der Zähler erhöht
Beim Freigeben der Interfacevariable sollte der Zähler zwar wieder erniedrigt werden, aber mit etwas Pech wird dann das Objekt auch gelöscht, sobald der Zähler 0 wird.
Abgesehn davon gibt es einen Compilerfhler, welcher bei der Referenzzählung (über den Rückgabewert einer Funktion) durchdreht.