This doesn't sound like the right explanation to me. Untouchable variables don't have anything (necessarily) to do with existential quantification. What they have to do with is GHC's (equality) constraint solving.
I don't completely understand the algorithm. However, from what I've read and seen of the way it works, I can tell you why you might see the error reported here....
When type checking moves under a 'fancy' context, all (not sure if it's actually all) variables made outside that context are rendered untouchable, and are not able to be unified with local variables inside the context. So the problem that is occurring is related to `c` being bound outside the 'fancy' context `F a b`, but used inside (and maybe not appearing in the fancy context is a factor). And `F a b` is fancy because GHC just has to assume the worst about type families (that don't reduce, anyway). Equality constraints are the fundamental 'fancy' context, I think.
The more precise explanation is, of course, in the paper describing the current type checking algorithm. I don't recall the motivation, but they do have one. :) Maybe it's overly aggressive, but I really can't say myself.
-- Dan