It is about dependency. Flows are executed sequentially where multiple server connects via app connect run in parallel. If one is dependent on the result of another then using a flow removes the need to nest connections via success events
Exactly as Brian explains - each flow step waits to complete before proceeding to the next one.
So when you use Server connect as step it will proceed when the Server Connect action is fully executed.
This has many advantages as you have a clear overview of the flow and doesn’t need to hook up in various events. Also if you just need quickly to get server connect data or execute an server connect action, you can do it right in the flow without the need to have it all defined on the page first.