I agree... I would like to just share my experience.
I implemented some tree data structure in sql a few times. Ever implementation was different, not only due to rdbms capabilities, but due to different requirements. I think it is very important to exactly define what data structure have to be layered and what operations have to be performed on it. For instance, is the order of child nodes important? Is serialization of the huge tree frequent task? What about concurrent access to the nodes of the same branch?
Like classic normalization, my experience says that it is generally better to minimize logical relations between rows of the same table, otherwise sql queries become mastodonts.