When a git commit hash is calculated, one of the data that is used are the pointers to parent commits. That results in two properties for commits:
1) A child commit's hash cannot be predicted without knowing the parent commits
2) Once a commit is created, its parent pointers are practically immutable. The only way to change them is to create a new commit with a different hash - which cannot carry over the old commit's children.
Those properties meant that it's impossible to construct a commit with a parent pointer that points to its own children. Therefore it was safe to assume that a git history is always a DAG.
I think with deliberate SHA1 collisions now possible, someone could actually violate property (2) and introduce a cycle.
As the DAG assumption is pretty fundamental, I'd imagine such a cycle could break a lot of tools. Has this ever been tested?