Directory hard links would "fix" this issue since `git checkout` could just create a directory hard link for each duplicated tree. I wonder why traditional UNIX does not support this for any filesystem.
(Yes you would need to add a loop detector for paths and resolve ".." differently but it's not like doing this is conceptually hard.)
(Yes you would need to add a loop detector for paths and resolve ".." differently but it's not like doing this is conceptually hard.)