I have tried to hide the icon when it is set to nil but thats not very convenient because of the user settings of the icon and text.
If the icon is disabled by the user, your addon would again show nothing.
The reason the text filed is required for data objects of type "data source" is not because display addons could not handle nil but because its the only field a simple display addon (that only supports the type "data source") has to implement. Without the text such a display addon would have nothing to show.
Thus setting the text to "" is not much better than leaving it nil.
What you actually want is to provide a data object of type "data source" at one time and then change it to "launcher" (just icon, not text) the moment nothing is tracked. Most display addons support both types but changes to the type are not supposed to happen and would make no sense with a display addon supporting just one type.
Why do you want the icon when there is nothing tracked?
Why not just set the text to "no currency tracked"
I'm wondering if you can add in the feature of being able to lock chocolate bar so when you click on it it doesn't bring up the option menu. I like the ability to click on certain mods during combat, but have noticed from time to time during combat I accidentally click chocolate bar and it brings up the option screen during combat. I know you can lock all clicks during combat, but like I said there is the occasional mod I like to click open to see something quickly during a lull in a combat phase.