Ekhm no. Jeśli obiekt jest zbyt "ciężki" albo po prostu potrzebujesz oryginału, to nie kopiujesz (przekazujesz przez referencje/wskaźnik). Nad typami podstawowymi nie warto się zastanawiać - kopiowanie kilku bajtów nic nie kosztuje, a wskaźnik/referencja to ok tyle samo pamięci co sama zmienna.
Argument " bezpieczniej jest pracowac na kopiach, bo jak je spieprzymy to mamy jeszcze zapas, w postaci oryginalnych" jest bez sensu. Jeśli dobrze napisałeś kod, to się nie "spieprzy". Jeśli źle - to poprawisz. Źle działający program i tak nie ogarnie sam z siebie, że przecież ma jeszcze oryginał w przypadku "spieprzenia" (cokolwiek to znaczy w przypadku zmiennej).