"Allow multiple values" vs "Allow multiple filter values to work together"
Allow multiple filter values to work together is used when you want to pass multiple arguments to and match against one field. 
In other words allows for 'many to one' joins

In a sense it is similar to 1, 2, 3, however if you need to pass multiple sets like 123+345 and 889+678 there need to be 2 separate joins to the same table. 

(assuming sometable has multiple results for your desired value like:

|nid|yourvalue|

|1  |123      |

|1  |345      |

|2  |678      |

|3  |222      |

|1  |789      |

|1  |823      |

|1  |845      |

|2  |678      |

|3  |222      |

|1  |889      |

select node.title from node node 
join sometable sometable_1 on sometable.yourvalue in (123,345)
join sometable sometable_2 on sometable.yourvalue in (889,678)

Therefore 'Allow multiple filter values to work together' is the only way to get view to return nid 1

this is useful when you need to pass arguments that come from different sources (i.e. 1 could be taxonomy terms from 2 different vocabs).

I used this only when dealing with entityreference field that references terms from different vocabularies