I think that if a student was so far behind that they had troubling mastering the basic concepts required to pass that grade level they would be even more behind if they just moved up to another grade level, I think that keeping them for an extra year in the same grade level benefits them greatly.
While the child may suffer some effects of being held back to repeat a grade, I think greater harm would occur if a child was sent forward into something they are not prepared for. I would hope that the possibility of having to repeat a grade be addressed early in hopes that progress could be made and it not be necessary.
Even though it is embarassing and a great effort to do so, students who have to repeat a grade level to benefit from having to do so. Some people are just not able to process the same information like other people. So if they have to repeat the same grade, it can only be a benefit to them.
The problem is the lack of intervention with the struggling student. The current policy seems to be hope the parents can help out more at home and blame the teacher if the kid is not ready for the next grade level.
Speaking as a teacher (who relocated to Asia to teach). I would much rather see early intervention and mandatory after school programs for those students that are falling behind. This way the child can get extra help in a smaller setting and the teacher can take the time to find out what needs to be improved. I'd also advocate for starting school at least one year earlier for all children.
I do not believe students benefit when they have to repeat a grade level. Students who have to repeat a grade level are at a disadvantage in the long run because they are losing time in having to repeat a grade. Students who are left back also tend to be grouped together with poor students and have a hard time learning.