Por que a memória da pilha é alocada quando não é usada?

Considere o seguinte exemplo: struct vector { int size() const; bool empty() const; }; bool vector::empty() const { return size() == 0; } O código de montagem gerado para vector::empty(por clang, com otimizações): push rax call vector::size() const test eax, eax sete al pop rcx ret Por que...