Das "clr 25" geht auf das ABI von avr-gcc zurück, weil eine return value promotion gemacht wird, also Werte als 16-Bit zurückgegeben werden.

Diese Promotion wird selbst dann ausgeführt, wenn die Funktion geinlinet wird.

Die überflüssigen mov-Instruktionen bei O1, O2 und Os gehen darauf zurück, daß GCC nicht perfekt ist.

Zeig mal deinen Quellcode.