[eluser]m4rw3r[/eluser]
The reason for not using the parent_id field is that this is an Modified Preorder Tree Traversal model, not an Adjacency Tree model. The advantages of the MPTT is that it is a lot faster in many queries and also makes sure that a node doesn't get orphaned.
The benefit with Adjacency trees are that they are faster when just getting one level of nodes.
Also, I implemented it as a model because I was young and dumb...
When I rewrite it I will make it a library.