When you post a question on Stack Exchange, you're soliciting other people to do work for you, in the form of answers. In the Stack Exchange mentality (which I agree with), it is impolite to then remove the content that those other people have produced for you, and the system tends to see that as a negative signal in various ways. As a simple example, of the system has any indication that that content has any quality (that is, if it's been upvoted) then the system will not let you delete the question.
If you've asked a question with incorrect premises and received answers that helped you realise that fact, then it's a bit ungrateful to then delete those answers. That's compounded by the fact that writing that kind of answer is quite often a significant risk, as it is often hard to gauge whether the OP will get belligerent when their assumptions get questioned.
And as for duplicates the standard practice is to leave them up as signposts to the existing, answered question. The thinking is that if you were unable to find that thread because, say, you used keywords that didn't quite match the existing text, then there's a nontrivial likelihood that someone else will come along and use the same search terms, which will lead them to your question and from there to the answer.
In short, only delete questions, and particularly questions with answers, when you really need to.
And, if bears mention, deletion sometimes looks like a nice alternative for closed or downvoted questions, particularly when facing their negative effects for things like automated question bans or the 'positive question record' of some badges. This is wrong: the system considers deleted questions as a negative signal in addition to the other metrics. Don't delete downvoted or closed posts - fix them.