Por supuesto, puede estar seguro, porque es documented. Es el compilador que lo resuelve en tiempo de compilación, por lo que no hay gastos adicionales en llamar a funciones sobrecargadas en Delphi.
[Editar]
hice una pequeña prueba para usted:
var
j: Integer;
st: string;
procedure DoNothing(i: Integer); overload;
begin
j := i;
end;
procedure DoNothing(s: string); overload;
begin
st := s;
end;
procedure DoNothingI(i: integer);
begin
j := i;
end;
procedure TForm2.Button1Click(Sender: TObject);
const
MaxIterations = 10000000;
var
StartTick, EndTick: Cardinal;
I: Integer;
begin
StartTick := GetTickCount;
for I := 0 to MaxIterations - 1 do
DoNothing(I);
EndTick := GetTickCount;
Label1.Caption := Format('Overlaod ellapsed ticks: %d [j:%d]', [EndTick - StartTick, j]);
StartTick := GetTickCount;
for I := 0 to MaxIterations - 1 do
DoNothingI(I);
EndTick := GetTickCount;
Label1.Caption := Format('%s'#13'Normal ellapsed ticks: %d [j:%d]', [Label1.Caption, EndTick - StartTick, j]);
end;
Resultado: Casi todo el tiempo 31 Garrapatas (milisegundos) para los dos en mi máquina dev, a veces la sobrecarga tarda sólo 16 garrapatas .

+1 me ganaste :) –
Derecha. Hay una cantidad (insignificante) de sobrecarga en tiempo de compilación, pero ninguna en tiempo de ejecución. –
El código compilado no se preocupa por el nombre, sino por la dirección del procedimiento correcto para llamar. Dado que este nombre de traducción => dirección se realiza en tiempo de compilación, al final, en tiempo de ejecución, es exactamente lo mismo que tener diferentes nombres. –