When it comes to complex flows with many branches serverless really shines. It makes it easier to manage such complexity. For simpler flows serverless might just be an overkill.
It makes it a lot clearer where logs, alerts, etc are coming from and it makes them easier to test - because the process flow of a given instruction is in the architecture.
Verifying that the call patterns between the functions are correct is challenging sometimes - but it helps there to have the architecture mapped out visually.