Most of the code assumes that if "allocated" is set then the variable is used. It seems like an error that allocate_register_reservations() is setting it even for unused variables.
Francisco, is there a reason we're doing that? Why does get_allocated_object() check that flag?
FWIW, I'm pretty sure this is also a regression, although I don't know from when.