Anyway, I find very funny that while Watson didn't wrote a lot about Holmes' addiction, he wrote it in a way that would call attention to it. And we can ask, why did he do that? And I think the answer is "because he wanted the readers to agree with him"
Which is funny because he never talks like that about his own gambling addiction
The only two times I can remember when he barely mentions it, it's when he says he has spent half of his pension in horse races and that time Holmes says that he keeps Watson's money under lock and key. And while this last one doesn't directly says that it's because of Watson's gambling addiction, we can assume thanks to his other comment about spending half his pension
It's very clear that Watson has a problem, and it got so bad that Holmes thought best to keep Watson's money away from him, since he can't be trusted with it. Maybe Watson was spending the rent money on horse races
But, why did he never brought it up like he did with Holmes' addiction? Easy peasy lemon squeeze, because Watson is not stupid; he knows that admitting that he has a problem will make him look bad. He knows that putting Holmes' addiction on display will make him look bad, and put pressure on Holmes to stop
Then we must also ask, what other things is he omitting or changing? Because he doesn't make an effort to make himself look smart, but he does make an effort to make Holmes look smart, even if it is at Watson's expense.
So he doesn't care to look smart, but he does care to look good? What other things is Watson hiding? Because the gambling thing wasn't so much brought up as it was a slip
Maybe Mary wasn't ok with her husband abandoning her to go away with another man, or perhaps his comment about enjoying committing crimes more than defending the law had something more to it than what it seemed at first glance? What else is Watson not saying?
We don't know, we can't know, but maybe good stupid Watson isn't as good or as stupid as everyone seem to think