I trained new computer programmers in industry. I intentionally put them into positions to fail, but didn’t let them work long enough to get discouraged. Then, they had intelligent questions and learned much faster.
The Chinese method you describe here is all-or-nothing which generates one type of problem, as you described. A full-freedom scenario has a similar problem.
A combination would work better, the Chinese method for most of the time, but a designated period where the child experiments and chooses. That has a much higher potential.