Das mit den Const-Parametern entspricht mehr einem dynamischen Array of Variant, was einen etwas höheren Verwaltungsaufwand bedeutet.
beim Overload kannst du auch einfach den Aufruf weiterleiten (in der einen Funktion die Andere, mit dem ergänztem Parameter, aufrufen)
und zu den Default-Parametern:
das wäre die effektivste Variante, denn dort setzt der Compiler bei nicht angegebenen Parametern direkt den Defaultwert ein.
Delphi-Quellcode:
// die Definition:
function NeFunktion(parameter1 : String; parameter2 : String = '') : Boolean
// du programmierst das so
NeFunktion('blub');
// und nach dem kompilieren steht effektiv dieses in der EXE
NeFunktion('blub', '');
also JA, du kannst es so machen