Immediate future is a teensy bit more instructions and cache since it has to return a value, whereas this version will have the value in instruction cache. Also if you don't use a singleton immediate future will allocate a new object. 

I figure since I am going to the trouble of creating a singleton I might as well make it efficient. I am surprised Guava doesn't have it already.