I am afraid you are quite right in your observations... Replacing nested entities will break stored links with parameters of dynamic block... To preserve its functionality I would redefine blocks and rebuild dynamic block from scratch with new links attached to nested redefined blocks... Then with new block created, you should reinsert them with the same properties like old (scale, rotation, insertion point), then you should remove old one, purge it and rename new one to match old block name... This all sounds cumbersome procedure, but as you stated it is like that if you want the same functionality, not to mention that you could have different visibility paramters attached and as you can figure out on own there is no way the links would be preserved if entities change their definitions especcialy their handles and enames...