That her is great advice.
Cross referencing (cast to, hard references, see in reference viewer) makes web of things that reference things.
At some point it makes impossible to remove assets that are unused, because some master material somewhere has it referenced, or some blueprint has it as default value.
Also that cross referencing forces unreal to always keep referenced actor in memory.
So if for eg. you make blueprint that has default manequinn as default static mesh but you use your own mesh with default skeleton. Because that skeleton uses default mesh in preview, that default manequinn mesh will always be referenced, and always loaded, even if its never visible/used in game.
Now let me make another example: bunch of HDRI textures (quite big) to make skyboxes. Master material has one, then instanced material has one, then i had idea to instance that instanced material. Web of connected textures grows. Then i had idea for make separate skybox blueprint, used some on those materials, added stuff for planets particles etc. Then i had GREATEST EVER (sarcasm) idea to make data assets for level skyboxes, so my level can just load skybox without editing it. So i made ARRAY of those skyboxes (as array of data assets references). My pikachu face when i loaded single level and all was out of memory instantly.
Luckily solution to that second example was soft references.