Has anyone found a way to untangle balloon leaders programmatically?
You would need to collect the locations of all of the leader lines using IAnnotation::GetDisplayData ==> IDisplayData::GetLineAtIndex3. After doing quite a bit of math, you'd reposition the balloons using IAnnotation::SetPosition. If desired, you can get the bounding box, so to speak, of a balloon using INote::GetExtent.
SolidWorks API Programming
Retrieving data ...