True for the weakest students, but it's always possible to give harder material/exercises to the strongest students. And it doesn't even take much time for the teacher because these students are more autonomous. I only taught CS and maths, but it's very easy to keep the good students busy.
I personally like teaching CS lab classes. The key is to design projects with gradual difficulty. Even the weakest students should manage to complete a few tasks.
But overall, I think that heterogeneity makes teaching much more complicated that what it could be, especially when basic pre-requisites aren't met. It's a bit heartbreaking when you get students which are obviously losing their time and money.