A more feasible way could be to sublcass ListenerInterfaceRequestTarget so that the getTarget() method will return a proxy intercepting the Seam annotations.
Or subclassing the RequestListenerInterface to override the invoke() method always to swap the component target with a proxied instance.
I will try to provide an example.
// Paolo
I did consider forcing creation of seam-enabled wicket components through a factory and just returning a proxy, however this struck me as fairly un-wicket-like as it seemed to me that the simplicity of Wicket was that you could use new and anonymous inner classes. Maybe we do a POC using factories for now, and look at classloading tricks or Paolo's idea as a second step.