Ich mache es immer wie in deinem ersten Beispiel. Zusätzlich noch mit class und static/inline deklarationen.
Delphi-Quellcode:
TTest = class
private
public
class function CountIrgendwas: Integer; static;
end;
class function TTest.CountIrgendwas: Integer;
begin
Result := (Zähl irgend was);
end;