Assigning a texture to a material breaks its linkage?

I have a material created by code shared by multiple objects. Whenever I change the texture’s tiling of an object’s material this change is shared through all objects using this material, which is what I understand to be supposed to happen.

The problem is that whenever I assign a texture to this same material, all posterior changes to it’s tiling, offset and texture aren’t shared between objects using this material.

Is it expected behavior? I want to be able to change the material properties of all sharing the same material.

Yes, that’s expected. Changing renderer.material for an object creates a new unique material; if you want to change the shared material then change renderer.sharedMaterial.