Unloading simple texture appear straight forward with Destroy().
However, Sprite are not the same and they appear to require to pass by Resources.UnloadAsset. However, I see no sign that the associated texture is unloaded too.
Should I do;
Destroy(sprite.texture);
Resources.UnloadAsset(sprite);
Unity should really offer better - more unified - way of loading and unloading data.