Even if it's not my current job, I used to work as Computer Science Teacher in the past.
First I'll comment on the utility of the homework tag from the teacher point of view. It's very useful for a teacher to see what students find hard to learn, or what kind of subjects they have difficulties with. It help to ask better questions (not necessarily harder).
Know when I read some questions I can't help believe it's homework and I would need some strong evidence it is not.
Consider the following (example from a real question from SO)
- the question is beginner level
- the user provides very few context
- the question seems to come "out of thin air"
- he seems to be clueless on how to start with it
- he speak about time (delay, time passed searching for an answer)
That does not mean all homework questions will be of that kind, but when all of these applies to a question I'm really convinced it's homework and will tag it so.
If the OP remove the tag or insist in comment it's not homework, OK I won't start a tag war. But If another poster without any bit more of knowledge remove the tag, I'm quite likely to put it back (how does he know it's not homework when it taste like homework, sounds like homework and looks like homework).
The main reason I tag such questions as homework is that I believe this tag is no infamy and will actually help the poster. He will get more useful answers this way and even if it's not homework he will probably learn something more useful with pedagogic answer.
Hey ? What do you prefer honestly ? Watch a movie or be told how it ends ?
When I'm at job on a real problem, be told the end may be enough, but when I'm obviously in a learning process, working on simple toy problems, hints toward the solution are better. I've no problem with helping students, but helping a copy/paster to graduate effortlessly is not good. We may actually work with that guy someday (he may even become a manager, it happens with poor developers).