Patch Set 1:

Coloring commits is not enough. The graft is a relationship
and not a commit, i.e. in this case C can be reached from A via the normal relationships, as well as via a graft- 

HEAD: A---B---C-(grafted)--D
       \                  /
        X----------------Y

Granted, this is an exotic case.