This is because there is a hidden designator on each footprint which is normally on the x.Fab layer that then gets set to x.SilkS. The correct way (as I understand it) is to use the filter to select the designators only on the x.SilkS layers. This will prevent the x.Fab designator from being set to x.SilkS layer.
In general although I understand how the dialog works (now) I don’t find it very intuitive; i believe it will be specially problematic with the not so computer literated people.
I was a bit confused at first, with “Scope” and “Filters” because they seemed to do the same thing. But then I accepted that they give you the power. But still I don’t know at all why filter by parent options are needed or how they are used.
But if you understand that Scope and Filters tell what is affected, Action tells how it is affected, you know what you need to know. I don’t know how “Set to specified values - Layer” could be any more clearer or easier to indicate that it changes the layer.
As I said, now I understand it but it is one of those things that would be ideal on a expandable dialog, but the standard case should be “I want to change X to Y”, doing “From ALL LETTERS select the X and change them through MODIFIER to Y” I agree that it is extremely powerful and I like it but I doesn’t solve the normal case easily.
My normal case is that I want to change all footprint refdes and values in the fab layer to a certain value, to create a readable assembly instruction. So, I use Scope: references, value. Filters: F.Fab. Action: specified values - text width/height/thickness.
Then I want to change the refdes in silkscreen to certain size. Scope: references. Filters: F.Silk.