...das kommt draufan...
wenn du sichergehen willst/musst, dass eine funktion einen übergabewert nicht verändern darf (aus welchen gründen auch immer, hab täglich damit zu tun

), würd ich immer den "call-by-value" bevorzugen.
wenn das allerdings keine rolle spielt, sondern eher speichereffizienz, ist es besser, die referenz (&value) zu übergeben