I did more some more tests.
The branch route was properly executed before INVITE to the first SRV destination was sent. The branch route set some headers, branch flags, etc. After the first SRV destination failed, INVITE was sent to the second SRV destination and the branch route was not re-executed. In the second INVITE, headers that were added in branch route were correctly preserved. However, branch flags that were set in the branch route were not preserved. As result, processing of positive reply from the second srv destination failed.
This looks like a bug to me. Also branch flags that were set in the branch route before the first INVITE was sent out should have been preserved for processing of the second INVITE.
-- Juha