Also, it has a postive effect on sixth forms because many can't offer a wide range of subjects because not enough uptake. Many don't offer physics for example, so those state children who would have done physics A level miss out.
This argument makes no sense. A school isn't prevented from offering physics A level because it has too few pupils. It's prevented from offering it because the number of pupils entitles it to £x funding through the government's funding calculator, which isn't enough to employ the physics teacher.
But the government can change that! Without adding the extra pupils!
Say a school currently gets £4million for 1000 students, which isn't enough to pay for a physics teacher
Which is better:
a) The school gets 20 new students, who used to be educated privately. The government now gives the school £4,080,000. That's enough to pay for a physics teacher. However, the school now has to fit those kids into existing classes, giving each child just a bit less time than they had before.
b) The 20 children remain in private school, educated entirely at their parents' expense. The government changes its funding and gives the school £4,080,000. The school can get the new physics teacher, but doesn't have to fit those 20 extra kids into existing classes and teacher-time
You can't have it both ways:
Either the private school kids will be fitted into existing state schools at minimal extra cost. In which case the existing resources will be split out more sparingly than they would have been without them.
Or the government pays extra funding to educate the extra children. The schools does get the extra resources like the extra physics teacher.... But the government could easily have given that funding anyway, and the resources (like teacher time) would have been shared out between fewer children.