I imagine that when includes, loops, functions, and families, are used effectively, needing to duplicate and alter events would be very rare. The only time I've needed to duplicate and alter events is when needing to perform the same actions for multiple object types. I'm hoping a primitive object model is used in C3 to get around this, but I'd be surprised if it were.
That would also require having the same objects in the other project as well. I'm not saying it's a bad idea, but what you're asking for is modularization, which appears to be a goal for C3.