Two thoughts.
Part of the problem I see with self-answered questions is that people put so much effort into their answer that they forget the question has to be of acceptable quality as well. If the question is so bare-bones that it wouldn't be allowed as a standalone incoming question from the broader community, why does adding a giant detailed answer magically make it suddenly acceptable? It doesn't. If the question is unclear or barely more than a stub, it'll never get other answers, and any effort to improve the existing answer, whatever its quality, will be hampered by the fact that people have to basically read your mind because they can't understand what the underlying question is.
People see that you are getting rep both for the question and for the answer, and getting rep for both feels a lot like intentional double-dipping. Particularly when the question is barely more than a stub (see #1, above). If your answer is so great and so useful, surely you could have found one of the other 3+ million questions that already exists out there and slapped your amazing answer on that question? Synthesizing a question just for the sake of adding your answer feels kinda slimy and/or lazy, unless you do it right and present it as an actual problem you really had and could legitimately find no good solution to, not just "here's an excuse to post this thing I want to post".
One possible solution is to "unify" reputation in these cases so intentional self-answers (that is, answers that come in within 1 second of the question being posted) don't get rep for both the question and the answer, but just the answer.