All geometry ‘inside’ the Rhino document is const. Nobody except us is allowed to change it. To open it up would basically allow any plugin developer to make changes that are both unexpected, untraceable and unstable. In order for Rhino to be reasonably stable while running a large number of plugins, and in order for undo to work well without placing a huge amount of responsibility on plugin developers, and in order to validate simplifying assumptions so the display can be optimized, all access to geometry inside the document is bottlenecked.
So yes, if you want to modify an object inside the document; get a copy of it, modify that copy, then replace the original with the modified object. The original object will be placed into the undo-buffer and a copy of your modified object will be inserted into the document.