the SQL gets boiled down to a binary-verion-meta data thingy. I'm guessing Access then stores this query. If the query is semi-used often and it doesn't change, it'll pull the binary version rather than reboil the text down.

Now...the question is why the boiled down version was somehow modified. No idea there, but if Access thought the query was still the same, it wouldn't recalculate it.

That would explain why 'recreating' the sql fixed the problem.