Unfortunately that won't help (if we) in the future use git for backports, since the new backports will get the same graphs once again.
I don't understand this. What graphs?
I believe the problem lies in how gitk determines what branch(es) a commit is on rather than on our use of grafts for backports.
Correct me if I'm wrong, but a graft is a way to artificially add a parent/child relation, isn't it?
If a commit has two (or more) parents, isn't that per definition a merge of them, which should cause a join of their respective branches? Cherry-picked patches are rather different since only the patch itself is taken from the other branch, not the whole content of that branch. If parent pointers are used for both of these, then how would git tell a merge from a cherry-pick?