"copy constructors" -- when are terms copied and when linked

Have you seen:

Does SWI-Prolog have N+K-trees?

Take a look at this post by Jan W.