How do I find depth and height of all nodes in a bounded semilattice?
If you do a topological sort and then traverse the nodes in reverse topologically sorted order, you can annotate each node with its height in linear time.  Similarly, you can annotate each node with its depth in linear time by traversing in topologically sorted order.  This achieves linear running  time, which is significantly faster than the quadratic time approach you mention.