RTG Core calls haplotypes such as this. In reply to rbagnall, the benefit of calling as haplotypes rather than as individual SNPs is that the variant caller is able combine the evidence across both sites rather than calling them independently (e.g. read evidence containing all of ATA, ATC, GTA, GTC looks like het A->G and het A->C when looking at the sites separately, but is completely bogus from a haplotype perspective).
Whether the output is represented as multi-base calls or is decomposed into smaller variants is orthogonal and largely personal opinion. Either way, with complex calls you are likely to encounter cases where variants may have multiple alternative, equivalent representations. Even decomposition tools don't get you to a canonical form for all cases, so haplotype-based variant comparison tools such as rtg vcfeval are critical for accurate comparison of complex variants.