You're absolutely right to be cautious when things seem too easy. But, here is some reason why option 2 and 3 is bad options
Option 1 (some server like Apache/FastCGI) :
Option 2 (run builded in php server php -S localhost:8000) :
"Easier" – true. But there are gotchas.
Not production-ready: PHP’s built-in server is single-threaded and not intended for production use.
No HTTPS support, no access logging, no protection layers like mod_security.
It may hang or drop requests under load (even low load with SSR + multiple API hits).
Option 3 (use cli command form JS on server side like php index.php --someController='MyController') :
"Must be faster?" Maybe. But... here's the devil in the details.
You lose all the benefits of an HTTP server, No persistent processes, no connection pooling, no caching.
Harder to scale later (parallel CLI processes can spike memory/CPU).
Error handling is painful – think stderr, exit codes, etc.
That is my opinion about it, let's share about your thought.