Properties are rendering parameters you can add at various levels (renderer, camera, object, primitive) that are inherited by lower levels.
Applying a material with a Properties shader essentially copies any properties on the shader to the target object. However, properties on each object override properties on the object’s shader.
Applying properties through a shader, rather than adding them directly to objects, is useful in a few circumstances:
In the Noise Displacement material, a Properties shader adds a Displacement Bounds property to the target object, and automatically sets it equal to the maximum amount of displacement set on its sibling displacement shader.
If you had a material assigned to objects inside other objects, for example eyeballs inside a character, you could use a Properties shader in the material to give the target objects a custom light mask.
The Instance object lets you choose a Properties shader that will override any properties on the instanced geometry.
When created, a Properties shader has no parameters. You add properties to the shader node and those properties are then applied to any objects or primitives that use the shader.