Looks like the same general idea. Having the nodes notified when their dependents change might be easier to program and faster. But you should be to have the same result using your idea. Then, as soon as you solve for one own, say x, you would search through the lists of undifined variables, updating each undefined x to be defined. Once an equation has only one undefined variable, then it could be solved.
I'm not sure, as I hadn't thought of solving things exactly the same way you described, but I think my system kind of works similarly that way....
What it does is searches for functions that solve for that particular variable, and then tries to parse the equation. The math solver will return a flag that says whether or not it compiled the math string correctly or not, and if it didn't, it returns a list of the undefined variables. The solver then proceeds to recursively call the solve function until it can solve for that equation. In essence doing that I think you just explained.