Here[1] is the offending pull request. The llama.cpp devs are trying to refactor the code, so the "engine" bits are shared between the current server and client applications.
Georgi himself noted it should be possible to replace the transport layer from HTTP to say an internal message queue, and the main developer of the PR said the HTTP bit is already abstracted and intended to include a non-HTTP transport example, so seems clear to me it's not intended to be HTTP-only.
If you check out the preceeding PR[1], linked from the merged PR, the use-case is if you got a llama-server running but is restricted to console, or you just want to debug, so you want to connect to it using llama-cli.
So it's easy to see how HTTP became the primary transport, because it facilitated the motivating use-case.
Georgi himself noted it should be possible to replace the transport layer from HTTP to say an internal message queue, and the main developer of the PR said the HTTP bit is already abstracted and intended to include a non-HTTP transport example, so seems clear to me it's not intended to be HTTP-only.
[1]: https://github.com/ggml-org/llama.cpp/pull/24948