You're correct in that it doesn't check indirect indirections. This is equivalent to the problem of storing a pointer in an aggregate, which I did not work on implementing.