Everyone's been very helpful, so I think one of us is entitled to be cranky: Why
are we humouring you (as opposed to linking to
Why it's stupid to use a variable as a variable name)? That is, is this approach actually essential for some application, or were you puzzling out for “academic” interest why a construct wasn't working as expected (or is it some more sinister other, like that you're intending to use soft references after all?).