I will admit that there is one type of worksheet that I used in the past and found relatively beneficial, although it had a different kind of flaw. For my Basic Math, Pre_Algebra, and Algebra classes, I had several books of "self_checking" worksheets. These worksheets had puns or puzzle questions at the top, and as the students worked the problems they were given some kind of code for choosing a letter to match that answer. If they worked the problems correctly, the letters eventually answered the pun or riddle. Students enjoyed these worksheets, but there are a couple problem areas even with these worksheets. Some students would get the answer to the riddle early and then work backward from letter to problem answer, so they weren't learning or practicing anything.
If you have read my article "Helping Your Child With Basic Arithmetic? Stay Away From Worksheets" then you know that I am not a fan of traditional worksheets. After writing that article, I found another credible teacher who has written many ezine articles expounding on the benefits of worksheets. I decided some clarification of position is in order. The primary problem with most math worksheets is that the problems are already written out and the child need only write the answers. For learning and practicing the basic skills of addition, subtraction, multiplication, and division, it is much more beneficial for the child to write out the entire fact and say the entire fact out loud. A child will learn a multiplication fact much faster if they are writing out 6 x 8 = 48 at the same time they are saying "six times eight is forty_eight" than if they just see 6 x 8 = ___ and only have to supply the 48. Rather than using worksheets, a better method is to use individual size white boards and have the child writing entire facts many times. Having a child writing 9 x 7 = 7 x 9 = 63 while saying "nine times seven is the same as seven times nine and is equal to sixty_three" is many times more successful than a worksheet with 9 x 7 = ___ and the student just thinks the answer once and then writes that answer on the duplicate problems.