Obviously there is no need to re-update the network durign diagNet.update() since no new observations occurred.
With single fault marked as pursued, diagNet.update() actually calls the bayesian inference once for each state of all uninstantiated ranked observations. The number of inference calls is even greater when multiple faults are pursued.
did you use some kind of optimization which prevents updating a network multiple times (i.e. the network keeps track of nodes which have to be recalculated)?
No, there's no special code for this. I don't think you'd get any significant performance boost with such feature implemented. If you worry about the cost of updateBeliefs() call before findMostLikelyFault, set the fault nodes as targets with Network.setTarget.
Also, Smile.DiagNetwork sets the most likely fault in its constructor.