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
Because then the directory tree will cease to be a directory tree. One directory could have multiple parents.