Mejores prácticas para devolver referencias de objetos

Considere este fragmento de código:

class MyClass{
    private List myList;
    //...
    public List getList(){
        return myList;
    }
}

A medida que Java pasa referencias de objetos por valor, entiendo que cualquier objeto que llamegetList() obtendrá una referencia amyList, permitiéndole modificarmyList a pesar de serprivate. ¿Es eso correcto?

Y, si es correcto, ¿debería estar usando

return new LinkedList(myList);

para crear una copia y devolver una referencia a la copia, en lugar del original, para evitar el acceso no autorizado a la lista a la que hace referenciamyList?