If you assume that Harry is correct, then a Wizard/Squib cross could have either Wizard or Squib offspring, at 50% each; you don't need a Wizard/Muggle cross to get Squibs. However, two Wizards could not produce anything other than Wizards, as you point out. There's a reason that I emphasized the initial phrase in this answer, however - and if you consider the hypothesis in light of the true definition of the scientific method and the methods of rationality, you inevitably have to come to the conclusion that the hypothesis of a single allele controlling Wizard/Squib/Muggle status is wrong, because it doesn't match reality's facts.
(It should be noted that even if Harry's hypothesis were correct, and two Wizards could not produce a Squib, for Squibs to exist at all would necessarily require some Muggle ancestry.)
Let's look at the single-allele model. We'll call it M (for can-do-MAGIC). If a person has the M allele, we mark it in upper-case (M); if they lack it, we mark in lower case (m). A person carries two copies of the allele, one from Mom, one from Dad. Thus, by Harry's hypothesis, a Wizard has MM, a Muggle has mm, and a Squib has Mm. So, the crosses appear as follows:
Wizard with Wizard: Both wizards only pass on the M allele, so all children are MM, or Wizards.
Muggle with Muggle: Both muggles only pass on the m, so all children are mm, or Muggles.
Wizard with Muggles: The Wizard parent always passes M, the Muggle parent always passes m, so all children are Mm, or Squibs.
Those are the simple ones. Now for the complex ones:
Squib with Squib: There are four cases:
- Mom passes M, Dad passes M. Child is MM, or Wizard.
- Mom passes M, Dad passes m. Child is Mm, or Squib.
- Mom passes m, Dad passes M. Child is Mm, or Squib.
- Mom passes m, Dad passes m. Child is mm, or Muggle.
Wizard with Squib: There are two cases, because the Wizard always passes M:
- Squib passes M. Child is MM, or Wizard.
- Squib passes m. Child is Mm, or Squib.
Squib with Muggles: There are two cases, because the Muggle always passes m:
- Squib passes M. Child is Mm, or Squib.
- Squib passes m. Child is mm, or Muggle.
Note that in no case can two Wizards produce anything other than Wizards. If they produce Squibs, then either the hypothesis is wrong, or there has been a mutation during embryo development that changed a M to a m. Similarly, for two Muggles to produce a Wizard, either they're both actually Squibs, or there was a mutation during embryo development that changed both m to M.
Or, by Occam's Razor, Harry's hypothesis is wrong.