Not giving Harry a promotion, stuck the character in limbo and then why is he a main character? I why would I want to follow a character that goes no where?
No one cared that Spock and McCoy never got promoted in TOS, or that Geordi went from a Junior Lt to a Lt Commander entirely off-screen, or how Dax or Bashir or Worf never got promoted in DS9, etc.
As for Kim...well, like I said the cast was too big. If he'd been a secondary I doubt anyone would care much.
The real reason was because the writers disliked Garrett Wang for never taking his work seriously and never putting any effort in, they were going to kill him off before he won that "Most Handsome Guy" award so they wouldn't have to deal with him anymore.