If a question is something without an absolute answer, for example "what's the best practice?", if an answer is accepted and better replies or a reply that discredits the accepted one, should the correct answer be unaccepted? Is there a penalty for doing so?
Assuming it's a constructive question, if you've already accepted an answer and a new answer comes along that does an even better job at solving your problem, why wouldn't you accept the new answer?
The design even allows for that. If it wasn't "allowed" then why can you "unaccept" an answer? (It's not an oversight, either; note that your vote gets locked in after a few minutes. The management is up on the idea of not allowing gamesmanship by reversing some decisions.)
The only penalty is that the person with the answer that was originally accepted will lose the 15 reputation points they'd gained from having it accepted. There's no penalty to the question asker (except, perhaps, a bit of enmity from the person whose answer they originally accepted).
Ultimately, it's all on the original question asker. Only that person can decide if an answer solved the problem (or even if any answer solved it).