Im Grunde geht es ja nur darum, dass der Compiler selbstständig einen Speicherbereich für den Rückgabewert einer Funktion reserviert.
(Das könnte der Compiler ohne weiteres tun, würde auch nichts an der Komatibilität beim Compilieren ändern.)
Wenn man dann den Rückgabewert setzt, egal an welcher Stelle in der Function, sollte dieser reservierte Speicher den neuen Wert erhalten.
Beim Verlassen wird dann dieser Wert an den Aufrufer zurück gegeben.
In C wird der Rückgabewert auch zwischengespeichert, bevor er letztendlich zurückgegeben wird.

Ich finde es halt nicht schön, einen Rückgabewert in r16 zwischenzuspeichern. Auf dem Frame wäre genug Platz.

Irendwie erinnert mich das ganze an die Straßen in Deutschland (nicht Ostdeutschland).
Hier sind die Straßen in einem rel. schlechten Zustand, so wie der Compiler auch (lange nichts geändert).
Anstatt die Straßen zu reparieren (den Compiler verbessern), werden 30ger-Schilder aufgestellt.
Das entspricht dem Hinweis in der Hilfe, dass man den Rückgabe-Wert erst möglichst
unmittelbar vor dem Verlassen der Function setzen soll. (in C muss man das nicht!).

Übrigens ist das ja nicht die einzig Macke, die der Compiler hat, lediglich ein Beispiel.
Wollte ich alle mir bekannten Macken von Bascom an MCS melden, wäre ich nur noch
mit dem Mailprogramm beschäftigt.

Aber egal, meine Frage ist quasi beantwortet.

Micha.