I would like to use relationships in a model to associate documents with their projects and contracts such that in the diagram below the parent document is a custom, contentless object that has attributes that are relevant to a project; a Project object. The child document would be a document associated with this project. There would also be a similar Contract object and document relationship. I could take it even further and associate the contract objects with the projects objects. This would make for a nice ability to easily identify all documents associated with a particluar project or contract as well as associate all contracts with projects.

First, is there a gotcha here? Is it a bad practice to use relationships in this manner?
Second, it occured to me that someone would have to set the relationship which would probably require a customization to the import UI.
Also, the relationship functionality would operate differently than most users are accustomed to seeing project or contract information, it would require a separate action unlike a displayed attribute, a customization could correct this but probably not without significant overhead.
I guess I'm looking to bounce this idea off the heads of others to decide if the benefits outweight the costs/risks
Thanks,
-Mark