Following on from where sleep interrupted me…
Having thought about it some more, I’m not sure a dynamic proxy would be needed in this case. If the app. container wrapped the component object inside a simple non-dynamic decorator object and handed that to anything that needed it, swapping the implementation could still be done on the fly just by changing the decorator’s reference to the implementation. Wouldn’t be as cool though 🙂