I have no idea, I would call it a bug on first sight, but I'm not definitely sure about that! Find() expects variables only as parameters, not functions or any other expressions. So it seems that Find() treats every parameter as a variable name and don't cares if its a function.
Its the stack() inside of the find-command which is responsible for the effect. It look like Find(stack(a,b)) is treated like Find(stack,a,b) which throws an error if evaluated numerically (stack is an unknown variable) and produces the additional zero in case of the symbolic eval.