This is the way I worked it out.
The answer must be a number as the question is "How many letters...?". So, let's suppose that we thought the answer was "six". The full question states: "How many letters does the correct answer to this question contain?" If "six" was the right answer then we would ask how many letters "six" contained and we would get 3. So six can't be the right answer because the answer can't be six and 3 at the same time. If we go through all the options, we get the same conflict with "one" (which has 3 letters) and we would get to the possible answer of "four". When we ask how many letters does "four" contain, then the answer is 4. In this case we don't get a conflict so the answer must be "four".
Outback, it's imortant that the answer is "four" and not "4" as "four" has 4 letters whereas "4" doesn't have any as you said. However, you could at a stretch say that the answer is "0", because "0" has no letters - but I think that is stretching the point.
Don't forget this is a riddle and not a quiz.