Provided that it is done under the right circumstances, I see nothing wrong with it. One thing that needs to be considered is that it is not as if Stack Exchange has simply neglected the possibility of doing it. They are fully aware of what they have done, and actually decided to build in limitations which severely limit the negative effects of any abuse or undue bias.
It does not come with the usual benefits of an accepted answer: It will neither be sorted to the top automatically, nor will it earn you reputation points. The only thing given to you is a big green checkmark, which means significantly less when self-awarded than it does when it is awarded as a show of appreciation for what somebody else believes to be the single best answer out of all of other tries. Stack Exchange also imposes a 48 hour limit on accepting your own answer, which forces the original questioner to at least consider accepting somebody else's answer if any potentially better ones come along within that time frame.
If it was something the network designers really did not want you to do under any circumstance, they would not limit it like this. It would be easier to prevent you from being able to do it at all. In consideration of these factors, and the fact that self-accepted answers from the same account are automatically disclosed, I see nothing unethical about it, provided that it is not done from a fraudulent account to abuse the system to gain unfair advantages and give people the impression that your answer is better than it really is.
People accepting their own answer may even be somewhat of a boon for us. There are a couple of reasons for this: The first is that the gamification of Stack Exchange is a secondary concern: Our ultimate goal is to teach and learn from each-other, and anything which may facilitate that process is something we want to allow. We want to encourage people to try and research their own questions, and share any interesting information they find with us. That is why we allow answering your own question in the first place. It is also why we allow partial answers to questions, even from people who are having the same problem. Just so long as the question is not too simple, we want to pick our members' brains apart until everything they are willing to share under any circumstances is archived and on display. If that means indulging some egotism, then so be it.
Also remember that answer acceptance is not an indicator of which answer is the best or most correct to anybody other than the original poster, so if their own answer to their question really does makes the most sense to them, that is the one that should be accepted, until somebody else comes along and persuades them that there is a better answer by providing it. In this respect, a self-accepted answer sets the minimum bar of quality that the questioner expects of future answers, because they surely will not accept an answer that is worse than the currently accepted answer, and especially not when it is their own.
This is not to say it is always a good thing to do. Indeed, accepting too many of your own answers may suggest that your personal bias towards yourself clouds your judgement, which is perhaps useful for letting other members know that they should not necessarily trust you. In order to avoid this perception, before you accept your own answer, you should really try to think long and hard about if your answer really is the best answer, or if your personal bias is clouding your ability to accurately judge it.