In a microservice architecture, it is common for an API Gateway to perform API Composition (providing CQRS is not used) for queries to multiple services to combine data to make it ready for a front end client. There are options for non-query distributed calls though, one of which would be to call one of the services from the gateway and then have the services call (send messages to, etc.) each other in order to create or delete a (distributed) entity, preferably using sagas.
My question would be, is it okay to make non-query (POST, DELETE, etc.) calls to multiple services from an API Gateway, similar to how we do the API Composition for data queries, and even abolish the services-call-each-other approach altogether? What are the pros and cons of such approach, and is it actually used (or frowned upon) in real production systems?
I draw a simplified diagram to better illustrate what we're comparing here.