in reply to Why did @$ variable bite me in the ass?

That's right: it should be $$self[MAGIC_VALS]{$magic_val} instead!
I'd say it should've been $self->[MAGIC_VALS]{$magic_val}... But yeah, as LanX said, @$ is part of the $ typeglob. @$ and its friend %$ are not 'magic', but they are a part of a larger structure, one element of which ($$) is 'magic', and so the entire glob is special-cased to supress strict... something like that.