Thank you for your explanation.
As for point 1, I agree but it has a use case. For me, for example, I was trying to see how best to group "tasks" (in my case they were actually folder with files). Hence I wanted to define "base" tasks with all attributes set, and then have 2 or 3 "trees" with task references representing several possible hierarchies. What I was hoping for is that I would then be able to read summary (accumulated) values of the parent tasks, thus getting a quick overview of the pros and cons of each hierarchy (tree). I think it's a valuable feature in general - when you are doing planning and trying to compare 2 or more alternatives as far as resource allocation and thus would like to see both versions at the same time.
Point 2 is definitely an issue though. I suppose you could avoid that by adding entries (task ids) to hashtable why walking the reference path and stop whenever you encounter a task that's already been seen before, but that would add complexity.