Hi Norman,
We do not use this multi-leg feature in our deployments, we basically have a billing party that is assigned for each session, which is logged only once in the CDR table. The billing party is calculated on the fly depending on the party that has to pay for the call, in the case of a forwarding is the party that enabled it.
Do you have a suggestion for how to allow multiple legs, maybe by adding a branch_id field in the radacct table?