El "depende" de la respuesta se resuelve entendiendo en que capa estas.
Si la logica es de datos/negocios es mejor en el servidor. Esto incluye validaciones (nunca confies que el cliente mande cosas correctas)
Pero si es para la UI, la logica es en el cliente, aunque es mejor "pre-empaquetar" en el servidor.
En concreto:
Una factura, mandas datos:
Código Delphi
[-]
Factura
Enc: ClienteId
Items:
Ref, Qty,
Ref, Qty
Y devuelves datos correctos y validados:
Código Delphi
[-]
Factura
Enc: ClienteId, TOTAL
Items:
Ref, Qty, TOTAL
Ref, Qty, TOTAL
En el cliente podrias hacer el TOTAL para mostrar el calculo en realtime, pero el servidor NO puede creerle que le mande el total correcto. Todo eso es en el servidor.
En el cliente haces cosas de presentacion y serializar/deserializar los datos.