It's not subtle, it's so
unsubtle the human brain doesn't expect it
It processes everything at the same time, in one whack. It has to get things
out of the variable to consider them as shell statements -- and by the time it's done that, it's already done, so doesn't bother. Removing text from a variable is a processing step. To reprocess it again and consider it a shell statement would be another step, and it only does one step.
This is also a security feature, preventing someone from causing havoc just by inputting the raw text `rm -Rf /` and having it executed whenever
any substitution happens.
This is also what makes
eval so dangerous -- it
will execute commands from arbitrary text. Use it with caution. Or better yet, don't use it at all.