This is because the taintedness is held at the var level. So,
are keys of the same variable. So, once one of them is dirty, the whole variable
is considered tainted. You are correct, it is guilt by assosiation, but it is there because
is as foo as any other hash-key as far as Perl knows ... more foo than scalar as it were. the same way as arrays (if i recall).