[quote user="Bruce Reeves SRNS"]My thought is that the constant "read" of the cell from the library on the server would be a big performance "hit"[/quote]
Maybe it is, and maybe it isn't. You don't know until you measure it. Beware of unnecessary premature optimisation.
Your idiom of reading the cell when the tool starts reduces any potential library read problem. Use EditElementHandles instead of element descriptors: they provide useful traits for managing the internal descriptor when copying a handle. Use DgnElementSetTool as your tool's base class.