-
I think people have become overwhelmed when trying to make an IF system in Python, because there's too many possibilities -- maybe basing something on TADS or a similar language would make it feel like a more reasonable job. Certainly the syntax you show there seems like it would translate decently. Forward references (like "cave") would be a pain; I think you'd have to resort to using strings there (and building the dereferencing into the engine), or maybe a magic object like rooms.cave, which the engine would also dereference.
Hrm... interdependent objects is where Python's execution rules become a real PITA.