My nine year old boy constantly had soap in his hair after showering, despite being in there long enough to rinse Chewbacca (of Star Wars fame) thoroughly. We installed a hand held shower head (so he could get it right up close to his head,) and it solved the problem. This might work for you too, since your daughter will be able have enough control to rinse well and not get any water in her face.
Here's another bit to think about: If her hair is pretty clean to begin with, the shampoo will suds too much even if she IS using the right amount. If her hair isn't greasy, sweaty, or have any "debris" in it, I would suggest that maybe every other day shampooing might help. It won't suds up so much, so she won't have as much to rinse. At the very least, it will minimize her exposure to the soap preventing dandruff/dry skin/rashes that may develop from residue left behind.
My last suggestion is that if you think she's just not doing it long enough maybe a song is the answer. Such as, decide how long you think she should be rinsing, then find a song she can sing that takes about that long (or multiple repetitions of a shorter song, etc) and have her sing it out loud. This way, you can be outside the bathroom "listening" to her rinse (respecting her privacy), and it will provide her with a "timer" she can take in the tub. I found that my son, who is easily distracted, is less so if he has something to keep his mind busy while he needs to do something with his hands, and vice versa (he has something to do with his hands when he needs to mentally focus). A song might make it fun too, and anything fun is more likely to get done!