Ich denke es geht deshalb, weil die RET-Adressen direkt hintereinander stehen.

Erzwing mal in einer Funktion einen Frame, etwa so:
Code:
void foo (void)
{
    char volatile i = 0;
    // Funktionsaufrufe...
    // bar();
}
Eigentlich bräuchte avr-gcc nen patch um an die Infos zu kommen, zB um es dem Programmierer zu ermöglichen an die Info zu kommen. Vielleicht find ich nächstes Jahr die Zeit nen Patch zu machen für GCC 4.4.x