Every group gets the same number of raises, regardless of their performance, or effective developers in poor groups get nothing.
Stack ranking sounds like a shitty system, without a doubt. But I don't think you can have a well grounded opinion until you think about the issues it's trying to address.
Managers don't "let" developers do anything. They have to actually have leadership skills (or enough budget) to keep their good engineers around by choice. Effective developers on poor teams find more attractive offers. Sometimes this will involve bonuses or raises. Sometimes this will involve more influence over product direction.
Obviously some sort of ground rules are needed (significant others on different teams, no kickbacks).