Jade,
There are times when a tcl proc that returns a multirow datasource will be more flexible, that is, is the built in templates are not formatted in the way you need. I guess, though, that the customized includable adp should just call that tcl proc.
About using acs_rels to associate arbitrary objects to a project (just another object.) The acs_rels system is very flexible and powerful. It can define relationships between two different object types. Because acs rel types are themselves object types, you can extend those object types with additional attributes. This was used in .LRN.
Setting up a user interface to require a completion survey for each project would be the tricky part. That is, letting a site builder specify what types of relationships without customr programming would be tricky. Some examples of this already exist in the acs-subsite groups UI.
Another way to hook together the various packages to manage a project would be using workflow. I haven't looked into exactly how it is done, but I hope it would be possible to associate a survey with a project, and update the status of the project when the survey was complteted. Again, all of this is possible using the existing pieces.
Definitely look at Jon Griffin's contacts and improvments to the persons data model. It will be very useful for associating people and places with projects.
I'm sorry I haven't come up with too many solutions, just more ideas. Perhaps it should be decided how flexible a solution needs to be. How closely coupled the features will need to be, and how much programming will be required to customize a solution.