I think it helps to keep in mind what an 'agent' actually is that makes these patterns relevant. It's just text into the context window as far as an LLM is concerned. All the control flow code is just an attempt to put the appropriate prompt back into an LLM and then use the resulting output
So once we start with that in mind it makes sense why you would want to use queues etc rather than a chain of immediate execution within an HTTP request: the output from the prompt can be a tool call or otherwise unexpected (a refusal, etc); it's not a standard API request