See Bizarre trouble with taking items from a held container for a similar problem and a possible solution. [EDIT: Oops – wrong link when I first posted this. The now-correct link is to a post by mathbrush.]
This is related to the behavior that you called out in your last post. It happens for a pretty complicated reason, because there is a complex interaction of parsing features that drives the unexpected behavior. I very much agree that it feels like a bug, but my guess is that the official verdict would be “working as designed.”
To my knowledge, there is not a simple generic solution – mainly because author expectations differ about what constitutes “correct” behavior. However, it is usually possible to achieve a solution for any particular set of desired behaviors. Again, I’m asking: What specifically do you want the behavior to be?