from @gidden:
An easy pro/con discussion is that this would require developers to implement a copy constructor correctly. However, if they're already implementing an InitFrom member function (every module in Cycamore is, for instance), that this isn't overly burdensome.