There a few ways. I’m a big fan consensus driven approaches, and equal pay for equal work. A higher payed worker should have other justification for the inequality than just seniority. E.g. if they use their experience to train other workers, that in and of it self is a good justification for higher pay (as they are doing more). In a well managed workplace getting consensus for higher pay with this justification should be rather easy.
Likewise a well managed company shouldn’t have many collisions on PTO slots etc. as they would hire extras when PTO is in high demand, but if a collision occurs there should be systems in place to resolve those (seniority could be one of these systems, but should not be the only one) other systems could be some points based systems (e.g. where a worker that has previously not been favored, will get priority in collisions), or even just lottery.
As for promotions, a consensus is absolutely favorable to seniority. If a consensus is unreachable other systems could take over, but in a well managed workplace, failure to reach consensus in a promotion scenario should be really rare (and honestly a worrying sign of an unhealthy work environment).
EDIT: I want to make clear that I’m speaking general here. In the Starbucks scenario, seniority is a perfectly cromulent practice to prevent their bosses from practicing retaliation by allotting worse shifts to workers they don’t like. A consensus driven approach is probably an overkill in a workplace with such a large corporate management.