if you are tangling msgq-receive with its processing then sure.
however, imho, if you decouple the whole thing i.e. msgq-receive, and its processing via callbacks, then things are harder to get wrong. it might lead to either more elaborate state machine on the receiver side though, but then again imho that is not bad either.
But if you have to write something like that:
then you can easily lose a message by a mistake.