I used to be a forum administrator, so I'm not a fan of users who try to do the jobs of moderators i.e. "mini-modding". Is it appropriate for users to leave comment similar to what a mod would write, or should we just stick to flagging?
One of the biggest mistakes that a user can make is thinking of Stack Exchange as a forum. The Q&A platform has shown, many times that it isn't suitable for handling extended discussions. That's because the system is specifically designed to make the best information rise directly to the top.
Voting is every Stack Exchange citizen's duty. Voting is what makes the system work. Remember, you're casting your vote to indicate if information is of good or poor quality, don't worry about rewarding or penalizing the author when you do this. A few down votes provides more than enough signal to someone that something might be wrong with their question or answer, where several up votes tell the author that they provided a great answer.
If you want to leave a comment to explain what you think is wrong or should be improved, that's completely up to you. Voting is the most important thing.
If you see a post that is particularly stinky, that's when flags should be used. When it comes to answers, sending a flag is basically telling your moderators that something is seriously wrong with the post that should be handled right away. It also implies that it's something that the community can't fix on its own, such as a post of very poor quality that can't be helped by editing.
Every user that can vote on any given Stack Exchange site is a moderator, to the degree that their reputation permits access to privileges. Diamond moderators are really just exception handlers that step in when they are needed.