Priority only matters when two or more offers are eligible for the same placement at the same time — with one offer per context, it's irrelevant. When it does apply, it's a simple ordering: the highest-priority eligible offer is the one shown, and the others wait for their turn rather than all appearing together, which keeps a single surface from showing a stack of competing upsells to the same shopper.
Separately from priority, you can configure an offer to stop showing further offers once a shopper has accepted one in a given session. This is the mechanism that prevents a shopper who just added a free-shipping gift from immediately being shown three more offers in the same cart drawer — it caps the session's total offer exposure, which is a different lever from priority's per-placement ordering. Used together, priority decides which offer a shopper is likely to see first, and the accept-to-stop setting decides how many more they'll see after that.
Neither setting changes an offer's own Smart Rules — an offer still has to qualify on its own targeting before priority or stacking behavior is ever evaluated.