that's by design - popularity is not a good judge however. A better system would be to provide upvote/downvote buttons to only a small, random subset of users in each topic.
I don't see how approximate popularity is better than popularity for the first three factors. It would achieve the 4th in individual threads, but amplifying randomly-selected niche viewpoints in different threads adds up to the same biases across threads (unless the selection of blessed users is thread-independent, in which case the community has a randomly-selected group of first-class citizens).