But the behavior is both counter-intuitive and wrong.
And the resolution is "won't fix" because it's "too hard."
You need to understand that English is not the first language for many developers, so taking snippets like that literally really isn't fair. It isn't a "won't fix" because fixing it is hard, the "hard problem" refers to it being a bit hard to explain for him. He explained nicely why this isn't a bug in his native language.
behaviour is not wrong. bindParam method requires a variable reference not a value. all passed references are replaced on execute. so the behaviour is not unexpected.