You'll get 'unknown' from cube.name() if all three names are None. I'm ok with that being used for the cf variable name. In the case of coords I don't use the fallback of 'unknown' as it may have been taken by the data variable i.e the phenomenon.