According to the documentation,
GraphLayout has an EdgeBundling suboption, which can take the following values:
What does each do, what suboptions do they have, and how do I use them?
"StraightLine" seems self explanatory, but not that it's not the default:
"DividedEdgeBundling" is described by István in this answer.
"HierarchicalEdgeBundling", which I cannot figure out. It seems to behave the same as
"StraightLine" in naive attempts to use it.
The suboptions of these can be discovered by passing a wrong value and looking at the error message:
This also reveals that there are several more suboptions to DividedEdgeBundling than the linked post above shows.