I have not see this issue at all. I know that checking for Nulls can be unpredictable (Set the formula editor to use Default Values for Nulls). Also I trust using Len(string) = 0 instead of checking for a null.
IF len({Accounting.TransA})= 0 THEN
{Accounting.TransB} +' - '+{Accounting.TransC}
ELSE
{Accounting.TransA} + ' - ' + {Accounting.TransD}