I had a question of the form "does something like X exist?"
Someone wrote a response to say that, No, X does not exist, but I could write it if I liked.
I had suspected as much, so I marked his answer as the accepted answer.
Today someone actually posted the code to do X for me, and I feel that the new poster deserves the "Accepted Answer" checkmark.

Is it poor form for me to pick a new Accepted answer? Does the original answerer get penalized in terms of reputation?

While the original responder's answer was accepted at the time, I feel this new answer is really more helpful.

Edit:
Which of these responses should I accept?
What does the notion of a single accepted answer mean with a question that is subjective that could have multiple "right" answers?

Acceptance is not a real necessity for discussions on a Meta site. Generally, you accept what you think best concludes the question, or what you think best represents the solution to the issue. Sometimes people accept what they think is the best answer, it doesn't have to mean the universal best. If there is no conclusion, and you don't agree with any current answer to the point you "accept" it, then you don't need to mark anything as accepted. As long as a question is still open for discussion, there's no rush to have that green checkmark.
–
Grace Note♦Aug 27 '10 at 15:38

Well, they lose the 15 points (if not community wiki) and that answer might cease to qualify for a badge (the badge doesn't go away, but they have to "make it up" before they can get a new one of that type).

As everyone else said, there's certainly no problem with it. If it seems to be happening to you a lot, you might be accepting an answer too fast -- you should wait a couple days to give people a chance to answer