The ability to separate good students (regardless of financial or ethnic background) so they can learn without disruption from kids not wanting to learn is a huge positive. Lots of brilliant kids are held back by the terrible schools they are forced to attend. This would provide much better equality of opportunity.
But at American public schools? A student flunking so hard they have to repeat a grade, once a fairly common occurrence, has become almost unheard of because turning a blind eye to misbehavior and performance has become the path of least resistance to each individual teacher and administrator. School administrators have no incentive to maintain the school's reputation because the school's reputation was never important in the first place. They don't have to sell parents on the merits of the school because they get incoming students and funding by default. The teachers who try to uphold standards get beaten down by the system, crushed with mountains of paperwork and are accused of being the reason that student behaves poorly. And so you get American public school systems where half the graduating students are functionally illiterate and everybody in the system pretends not to notice.
As you've identified, it's not because of funding, but it's not because private schools care more either. It's because private schools can kick out bad students, the students who deliberately make trouble and hold all the rest back. Private schools all do this, while public schools generally cannot (or it is so difficult that it rarely happens.) Throwing money at schools makes little difference if all the students in that school are forced to endure assaults and disruptions dished out by malicious students who are deliberately sabotaging everybody else.