Earlier quoted context omitted.
The specification allows implementations to have limits on maximum call stack depth and all sorts of other things. It's absolutely semantically meaningful in C to allocate a new stack frame.
The details of how a stack is managed isn't normally part of programming language semantics.
No, but "this action consumes a potentially exhaustible resource and could therefore fail" is normally part of programming language semantics