I tried this but field.missing_value is always None whereas for List fields the value is [] (the problem is the same for Tuple, Set, etc). 
I think that we want the empty class if widget.value == '' or widget.value ==  [] (and other "strange" cases like date where the value is ('', '', '', '00', '00', ''))

In our use case, the customer doesn't want to see the fields labels if no value is displayed.