I agree that nobody should be able to post without getting an account first. If you care -that- little about getting an answer, you're probably going to make a lazy post and waste our time. I've already seem some examples of this in just the past couple weeks. Not that registered users are necessarily perfect either, mind you.
As for downvoting, this is entirely necessary. Some people post horribly bad code, or troll, or whatever, and these people deserve to be downvoted to tell them they're doing something wrong. I rarely downvote people myself, but when I do, it's well-deserved. Given, this can again be abused by regular users - the account I had years ago was being automatically downvoted every day by one user's entire supply of votes, and the site admins wouldn't tell me who it was or do anything about it - but one would hope that if people doing nothing but downvote becomes a widespread problem, the admins will do something about it. It would be much worse to NOT allow downvoting and promote useless trash posts.