I don't think it's unreasonable for people to assume that = means equality, not assignment.
Edit:
In particular, the link posted in the second edit has a rather poor test using a and b, because it uses = in two different ways with no indication that the meaning of the symbol has changed. Maybe the problem with the test isn't just the people, it's the sloppy notation that assumes people with no programming background are able to infer when we mean equality and when we mean assignment.
The population that took that test were self selected computer science undergrads!
And even after three weeks of instruction most of the people who didn't understand it immediately never understood it. I'll quote from the article:
"Either you had a consistent model in your mind immediately upon first exposure to assignment, the first hurdle in programming-- or else you never developed one!"
My wife is a brilliant woman, fantastic at what she does. The GP I mentioned in my post is a very good doctor who had no problems getting into a medical school, passing his boards, or running a successful practice. But that doesn't mean that everybody is meant to be able to understand the abstract concepts you have to master in our line of work.
Edit:
In particular, the link posted in the second edit has a rather poor test using a and b, because it uses = in two different ways with no indication that the meaning of the symbol has changed. Maybe the problem with the test isn't just the people, it's the sloppy notation that assumes people with no programming background are able to infer when we mean equality and when we mean assignment.