Klar, indem du es so machst, wie in deinem ersten Code,
Delphi-Quellcode:
function CurrentOL : TComponent;
begin
if ... then result := EineKomponente
else result := EineAndereKompoente;
end;
nur dann kannst du das ergebnis wiederum nicht direckt an ein andere Fumktion übergeben, welche einen Var-Parameter haben will (wie z.B. an FreeAndNil)