Yeah, I got your point.
From my point of view, publishing a rollback event from failed service to previous service will make the flow is easier to understand and maintain. Furthermore, emitting an event from the Order service or from the Shipping service with me is no different, still be coupling.
That is why we should apply Choreography with “small” transaction :)