Your understanding is partially correct. The behaviour, according to the spec (RFC 6121) is
If there is more than one resource with a non-negative presence
priority then the server MUST either (a) deliver the message to
the "most available" resource or resources (according to the
server's implementation-specific algorithm, e.g., treating the
resource or resources with the highest presence priority as "most
available") or (b) deliver the message to all of the non-negative
resources.
The default behaviour you are seeing is an implementation of (a). To accomplish (b) you will have to set the property route.all-resources to true, but this will only deliver the messages to all clients with the same highest priority. I think there may have been a change in the spec somewhere as the current reading makes no mention of priority (except being non-negative).