I stumbled on the usefulness of this when I looked in the object tree under /proc and saw all of my
cf_ procs listed there, and thought simultaneously that requiring the datum be initialized just to use the attached procs isn't preferable. I also kept running into problems putting common functions into datums and receiving errors when trying to use them before datum/New() was finished, and also being bound to use the target datums only when they're instantiated. Given I'm not aware what manner of overhaul this might require in the frightening depths of the compiler code, just getting the idea out there for the future is good as well.
For anyone unawares, the double-colon is used to access functions and properties of objects that haven't been initialized. In terms of result, these two verbs would be identical:
mydatum
var/special_value = 7
mob/verb/blah1()
var/mydatum/d = new
usr << d.special_value
mob/blah2()
usr << mydatum::special_value
Lummox JR