"Are these the same: set(0, ... and set(groot, ..."
No, they are not the same. Not even close to being the same.
Zero is a numeric scalar. This means that it is a number.
groot is an object, the root of all graphics objects. This means it has methods and properties..
The reason why that outdated Answers thread mentions zero is because it was written just as some huge changes were being made to the graphics engine, which was released with version R2014b:
As you can see, everything changed, not just how the graphics root is referred to.
But, as a matter of convenience and to allow for some backward compatibilty, some of the old ways of referring to old style graphics objects still work, e.g. using number handles. But the documentation, blogs, and answers on this topic make it quite clear that using these outdated syntaxes is discouraged, e.g. "This capability is provided to help make it easier to update code to work with the new graphics system, but should not be used as a permanent fix."
Best Answer