In RCP you can dynamically add extensions if you set the user security
token to null. Then you could generate your perspective extensions on
startup. I would be concerned (although not terribly) in that user
updates to the registry are not persisted between invocations. That
means that you need to auto-generate the same extensions each time
eclipse starts up.
I don't know what effect that might have on an already open perspective
whose PerspectiveDescriptor suddenly disappears (although really your
perspective is fine, it's your perspectiveExtensions that are missing).
You might have to update the extension registry in your application
before you create and run the workbench.