Smallest sum (and largest difference) of two 3-digit integers
Jelly, 12 bytes
Ṣs3¬Þ€Fs2ZḌṚ
Try it online! or verify all test cases.
Background
Consider six digits a < b < c < d < e < f.
If a ≠ 0, a number pair of three-digit integers with minimal sum must clearly use a and b for the leftmost digits, c and d for the middle digits, and e and f for the rightmost digits.
That gives eight possible arrangements with identical sums (100(a + b) + 10(c + d) + (e + f)).
Since the difference should be as large as possible, all digits of the first integer should be larger than the corresponding digits of the second integer, leaving bdf10, ace10 as the optimal arrangement (difference 100(b - a) + 10(d - c)+ (f - e)).
Finally, if a = 0, a should still occur as early as possible (as middle digit), and a similar process reveals that the pair cdf10, bae10 is the correct solution.
How it works
Ṣs3¬Þ€Fs2ZḌṚ Main link. Argument: <a, b, c, d, e, f> (in any order)
Ṣ Sort; yield [a, b, c, d, e, f].
s3 Split into triplets; yield [[a, b, c], [d, e, f]].
¬Þ€ Sort each triplet by logical NOT.
If a ≠ 0, all digits have logical NOT 0, so this leaves the triplets
unaltered. If a = 0, its logical NOT is 1, so the first triplet is
sorted as [b, c, a], leaving [[b, c, a], [d, e, f]].
F Flatten; yield [a, b, c, d, e, f] or [b, c, a, d, e, f].
s2 Split into pairs; yield [[a, b], [c, d], [e, f]] or
[[b, c], [a, d], [e, f]].
Z Zip; yield [[a, c, e], [b, d, f]] or [[b, a, e], [c, d, f]].
Ḍ Undecimal; convert each triplet from base 10 to integer.
Ṛ Reverse the order of the generated integers.