Well, I know all of these, but that's not my point.
I have all of my UI created in my scene with every textures associated etc...
Before bulding the game, I have an editor script that sets the mainTexture of a bunch of materials to null, so that when the game loads, the textures are not loaded in memory.
Like that, in the game, I'm calling Resources.Load whenever I want and keep track of the memory used by my game.
It's been working GREAT so far for everything atlas related etc... but not why UITexture that keeps reference to the texture, that's why.
And I don't really want to modify my script to go through my scene, search for every UITexture and remove the texture reference. It's way easier to just set the mainTexture of the material used by the UITexture to null.
Plus, if you have a material attached to the UITexture, why do you keep track of the texture ? Can't you just do material.mainTexture ?