Perhaps Data and Kim could start a club for disgruntled Starfleet officers. Well, at least for Kim there was (kind of) an excuse, in that there were only so many positions to hand uit, but even then I didn't see the problems in promoting him to a jr. Lieutenant after 3 years or so, even if it changes nothing for his daily work.
Data's career perhaps was stalled because (some) people clearly felt uneasy getting commands from him, as we see in Redemption. That wouldn't be fair, and probably strongly against (assumed) Starfleet principles of giving everyone a fair treatment, but it wouldn't surprise me too much.