Great question! Would you tell me more about the lookup dataset?
1) Are you using an import UDF to pull in the lookup dataset or a data source import?
2) When the lookup dataset is empty, do you mean that a lookup dataset file exists, but contains no records?
3) What type of data source file are you using?
If a step in a dataflow fails, the dataflow will fail. My guess is that the lookup dataset is being imported by import UDF, and the import UDF is failing on the file's empty state. If this is the case, modifying the import UDF to complete successfully on the empty state or no-file state should allow your batch dataflow to complete for both your use cases.
Let us know how it goes!