Others have addressed most of the issues in your post, but not this
"It's definitely not help for project if bug report is bad. This is not help also if maintainer made a note elsewhere in documentation that project is obsolete/abandoned/no bugs fixed without patches"
Even if a bug report is wrong, or you've documented that the project is obsolete, abandoned, etc, you should still treat the reporter with courtesy and not just ignore them. Even though it costs you a few moments of time, you should do this for several reasons:
- Rude people are less than fully human. When you are rude you destroy a little bit of yourself;
- Your reputation. As an open source author you live or die by your reputation. If you are rude to someone when they are wrong, they are likely to tell others about your poor behaviour. And whether it be right or wrong, there is a perceived link between the quality of a person and the quality of his work.
- Your reputation. Open source authors are also likely to be professional closed source authors. People who you are rude to aren't going to merely tell their friends, some of those friends are your potential future employers or customers.
- If you're rude to people they won't bother to help you with correct bug reports in the future.
Something as simple as "thankyou for your bug report. However, as documented, I can not accept your report because blah blah blah" is sufficient. As for users not reporting bugs, you can help them by providing easy links in the documentation to your bug tracker. Some people will still not bother, but any small increase in people telling you about problems is useful. Also put a link in your module's META.yml so that places like metacpan will link to the bug tracker.