There are plenty of good public schools. If everyone deserves a good school, then we need to make all schools good, not drain everyone away from one system and into another.
It wouldn't be draining money, since public schools would get money per-student just like private schools do (conversely, why does the local public school get to count private-school students in its catchment area?). And you're assuming that it's possible to make all public schools good, which from what I can tell is roughly impossible to do given American political realities.