First of all, I quote the following text from RabbitMQ docs:
When a message is requeued, it will be placed to its original position in its queue, if possible. If not (due to concurrent deliveries and acknowledgements from other consumers when multiple consumers share a queue), the message will be requeued to a position closer to queue head.
Now imagine that there're two message (A and B) on the same queue, both are unacked: when official docs says "[...] closer to queue head" gives any guarantee of ordering?
Would message A be queued before B under any condition? For me the answer is no but I'm looking for advise.
The short answer is
then A will always be placed before B in the queue after both have been re-queued.
See my answer here for explanation as to why these assumptions are necessary.