Hi! I've read the @export related section in docs, but it says nothing about this question, and it could be a bit misleading IMO.
The fact is, if you have i.e. an "item" scene that represents an inventory item with a BG color and an icon, and it has some @export var icon : TextureRect inside, when you instantiate that scene inside a parent "inventory", every time you want to change the icon for one random item, it has somehow the reference to the icon (TextureRect) of the first instantiated item, not its actual icon.
I've tested that this can be avoided using a reference like $Icon instead, but docs don't explain why is this happening, or if it's a by-design decission.
The advantage of using @export is that you can rename childs of your scenes without refactoring all occurrences inside your scripts, so it is not a huge problem, but a little annoying.
Can anyone clarify this? Am I doing something wrong?
EDIT: See other answers below to clarify the problem (only happens on duplicated nodes)