Let’s start with some definitions:
Synchronous messaging – call and wait until completion
Asynchronous messaging – call and continue
If we can agree on these, then there is a very definite advantage in the analyst knowing which kind of messaging is being performed, so there should be a designation applied for all accessors (bridges, events, class operations) that can support either type of messaging.
“void” is just an indication of no return value, and if used to imply a messaging type, then another term would need to be invented for no return value.
As the block on transmission is implied by the definition of a synchronous message, it should be expected when the analyst chooses to call a synchronous bridge. However, it is possible to override this behavior in the architecture for specific platforms. This would need to be done with caution, as the model is obviously intending something to be completed.