Asamblea x86: ¿Por qué necesito marcos de pila?

En la mayoría de los ejemplos de código de Ensamblado x86 (NASM específicamente) que veo (incluso en los generados por GCC) veo lo que se llama "configuración del marco de pila". Me gusta esto:

main: 
        /*setting the stack frame*/
        push    ebp     
        mov     ebp,esp

        ...
        code goes here
        ...

        /*removing the stack frame*/
        mov     esp, ebp
        pop     ebp

Tengo 3 preguntas sobre esta práctica:

Si mi código no toca la pila, entonces la configuración / eliminación del marco de pila como anteriormente es completamente inútil, ¿verdad?

Incluso si mi código usa la pila, siempre y cuando salte todo lo que empujo (dejando la pila tal como estaba esencialmente), configurar de nuevo un marco de pila es completamente inútil, ¿verdad?

Como lo veo, el único propósito de esto sería guardar el valor de ESP para poder jugar con él en mi código sin preocuparme de desordenar las cosas, y una vez que termine, simplemente restauro su valor original. ¿Es este el propósito de la configuración del marco de pila o me estoy perdiendo algo?

Gracias