Why does my execution plan (sometimes) include a left join?
I suspect the difference is the implicit conversion, which can get in the way. 
As an example, Bar isn't touched if it has a compatible data type:

CREATE TABLE [dbo].[Bar]
(
    [Value] int NULL,
    [Value2] int NULL
);