The underlying problem here is that we are not using the appropriate action. Actions are supposed to encapsulate functionality from the user perspective. There are differences between adding a scene and duplicating or pasting one, because from the user's point of view  these are two separate things. So we'd want to have them separated or after a while we'll end up having a good mess. 

Consider for example that right now we are not doing any processing of the elements that are pasted, something we'll eventually have to do because otherwise the usability of the editor will not be very good. Examples: changing the name of the new scene when it is pasted. That's something editors typically do (newScene.name=oldScene.name+ " Copy"). Or changing a little the transformation of a scene element when it is pasted twice so you can actually see both of them (otherwise you may think that the element was pasted once only because you have no feedback). In short: to actually make a good paste you need more context. AddXXX actions will not have that context because they don't need it. Without having separate actions, AddXXX actions will need to be too complex. 

Gonna have a coffee - keep discussing later so we don't get cold : )

In this case what we'd probably need is to have AddXXX actions and also DuplicateXXX actions that extend a common parent.