Dear Aminius,
Sorry I did not reply earlier.
I never did receive a reply on this from the development team.
Many relationships and tips and tricks like this are actually not known by us, and the real experts are other peer developer colleagues of yours, like Revitalizer.
The approach described by him actually corresponds exactly to the standard way of storing relationships in Revit.
For instance, a door or window hosted by a wall maintains a pointer to the hosting wall via the Element.Host property.
The inverse relationship is not available directly from the API, which is why one of the very early discussions on The Building Coder discusses the issue of implementing a dictionary as suggested by Revitalizer to determine the inverse relationship from host to hosted elements:
http://thebuildingcoder.typepad.com/blog/2008/10/relationship-in.html
In fact, that is blog post number 16 from 2008 🙂
It makes sense for the Revit model to store the relationship one way only, not both ways, to minimise the model data, possibilities for errors and synchronisation issues.
I hope this helps explain.
Best regards,
Jeremy