Seam 3 uses weld for the DI core. Weld uses proxies for injection, the proxy is injected statically and then all calls on the proxy are passed through to the correct underlying bean.
Adding to what Stuart wrote...
Arbi Sookazian wrote on Mar 24, 2010 22:44:
What performance improvements are expected in conjunction with JSF 2.0 specifically?
The performance improvements in JSF 2 revolve primarily around the use of partial state saving of the UI component tree.
Weld brings performance improvements to Seam 3 since all the bean metadata, injection points and observer methods (and so on) are calculated at startup. This work doesn't take long, but if it were done repeatedly, then it would eat up valuable time...hence the improvement. Also, reduced dependence on interceptors helps reduce overhead of method calls.
As I understand it, Weld, which is the new Seam 3 core
...does not have an outjection facility via @Out like in Seam 2.x, but there is the ability to
outjectvia @Produces producer methods.
The majority of people agree this is a more sound strategy. What I'm interested in hearing are the experiences of switching over. Those will come out in time.