This solves issue with user counter on materials, objects and such, additionally avoids having too much overhead of temporary lock and datablock allocation. Still need to do similar thing for scene copy, and look into nested ID datablocks somehow.