I think the accepted answer should not always be first because the community knows better. This page is cool because many people combine there knowledge and there opinion. In this case we put the opinion of one person over the community.
I think the order should be:
- highest voted (if it has 5 votes more than the accepted answer!)
- accepted answer
- other answers
Does the OP know better?
No, he has no idea about it, that is why he is asking. Even if you OP knows it better then everybody else, this only works if the user rechecks the question for new/better solutions regularly. If he is not looking at every new answer or simply not logging in, it does not work at all.
Theory vs practice?
Some argue that only the OP tried what is the practical solution and what is only theory. This might be true for some of the 5 first votes from users trying to help. But if you find the question because you have the same problem, you up vote what practical works for you. Ask your self what you would like to try first: The accepted answer with 5 up votes or the other one with +20.
Is it correct because it works?
No. Just because it somehow works does not mean it is what you should do. For a lot of errors there a many different solutions. What worked for OP might not work for 90% of the others. Also think about best practice. The OP might prefer quick and dirty, the community does not.
For example I had a problem with SwiftMailer and my solution was to not use SwiftMailer at all. Completely right for me but no solution for others as I was told by many down votes. They were right!
Please also see my duplicated question on this topic and this answer with 11 up votes.