When I wrote my thesis, I thought this was going to be the future. Much like the episodes of Star Trek: The Next Generation where we sometimes saw children learning without the aid of a human, this would create great learners who understood and could apply concepts.
I'm sure you are sniffing the big "but" coming in now.
BUT what I didn't realize then and do now is that this kind of practice may create high ACHIEVEMENT but neglects high LEARNING. The student simply wants to get a higher score in the game-like atmosphere of one of these CAI programs, or wants to master an isolated skill without context in the real world (like the Khan Academy).
I find myself doing the same thing at this point in time, mainly because I don't know any better. For this reason, I've decided to make a MAJOR overhaul on my grading structure for next year. Instead of providing grades for individual assignments or activities, I am going to grade SKILLS. These skills can be mastered at ANY TIME in a number of ways. I imagine a classroom where students constantly ask me if they can demonstrate their knowledge of a particular skill and I have multiple ways in which they can do that, always available.
I think this will shift my student's focus from the activities to the learning. It will hopefully end a lot of cheating because demonstrating knowledge is much harder than simply completing an assignment. And it will be more self-paced because the learners can demonstrate their knowledge at almost any time (during class, before/after school).
With this in my toolbox I think my students will come complaining to me that they haven't mastered skills (LEARNING) instead of demanding their peers show them the assignment to copy and paste (ACHIEVEMENT).