Can somebody please explain me why the kernel doesn\'t allow us to make a hard link to a directory. Whether it is because it breaks the rule of directed acyclic graph structure
Cyclic references will break garbage collection by reference counting. Wikipedia describes the problem:
There are a variety of ways of handling the problem of detecting and collecting reference cycles. One is that a system may explicitly forbid reference cycles.