I assessed the review of my book at Slashdot. The author is distressed by this. Given that a foreign key is basically a pointer you can store trees in databases, it might not be pretty and there may not be easy way to read them and it might not be a good thing to do - but if you feel the need then get right in there. Of course I could be totally wrong about this Confusing keys with pointers is one of the major errors many practitioners make.
Pointers are system-generated and have no counterpart in the real world.
It is, obviously, desirable to have a data model and, thus, logical models that are faithful representations of the real world, without adding artifacts of their own. Note the complication in the data language, without any benefit. It's not hard to create a binary tree structure in a database without use of foreign keys. Just make a parent and two child fields. Yes, you can represent a tree in a relational database, but there is no mechanism in SQL to query on or return trees, and there is no tree data type.