Here's the thing about the 'perfect/not perfect' debate in Star Trek.
'Perfect' characters can be great, but not if they go out of their way to force you to think they're perfect.
Flawed characters can also be great, but not if they make every story about the character be all about that flaw.
Other than Wesley at the beginning and half the Voyager crew I don't think Star Trek made this mistake too often with main characters. You could argue they did it with Spock's emotionlessness or Worf's humorless antisocial tendencies I suppose, but usually they showed you the characters' virtues or flaws by sticking them in a situation and just letting them react.
Except for Voyager and first two seasons Enterprise. On Voyager almost every plot was built around flaunting a character's key flaw.
DS9 occasionally did it but not quite so blatantly. They did have a penchant for the TV trope of "Take two characters with opposite personality and trap them alone in a dangerous situation".