Эта функция может поддерживаться до тех пор, пока вызывающий объект не попытается изменить свою «копию» ресурса, после чего создается настоящая частная копия, чтобы изменения не стали видимыми для всех остальных.
Только когда они пытаются изменить ресурс, нужно делать локальную копию.