Generally speaking, you don’t want PPGs and other UI displaying when running code. That’s why ApplyOp() doesn’t spawn a PPG. The menu that calls the smooth deformer probably has a little code wrapped around ApplyOp() to open the PPG if successful.
Matt