Ob ich ein Integer potenziere oder Real, das Ergebnis sollte ja gleich sein, wenn der Empfänger Real ist.
Eben nicht
Bei der Auswahl der passenden Überladung einer Funktion wird der Typ des Rückgabewerts nicht berücksichtigt, aber der Typ der Argumente.
Deswegen kannst du auch nicht mehrere Überladungen einer Funktion haben, die sich nur im Rückgabewert unterscheiden.