I think because of the first 2 options spring is a scalable solution ( in an application server farm) , synchronization of statefull app has more load and concerns (such as cache management in a farm ) , but there isn't great difference in multi-core or multi-processor systems.
Spring is used for very large applications by hundreds of the biggest corporations in the world. The Spring Framework is well-established in the enterprise development space where it is meeting the demands of applications for banking, government, and the airline industry.
One example is Voca, whose services are used for payment of household bills by over 70% of the UK population and for paying over 90% of UK salaries. They¢ve relied on Spring to process over 5 billion transactions in 2005 - with over 72 million on a peak day.
Other acknowledgements of increased productivity and performance for large scale Spring-based applications include an online system for the French Taxation Office built by Accenture and an enterprise application of the European Patent Office. (SpringOne 2006 Keynote, Antwerp, Belgium)
blog.itspax.com.br/.../...ptions-about-spring.html
I beleive JBoss Seam could bundle some frameworks well and could help a developer to create his/her project easily and quickly and some concepts like bijection is beautiful, but in my idea :
Seam is more an IoC framework for web environment (like spring web flow) but it can work easily with JBPM , JBoss Rules (great integration)
Bijection is excellent, but i try to have one-way dependency
A lazily-initialized bean in Spring indicates to the IoC container whether or not a bean instance should be created at startup or when it is first requested
If i didn't have to have on-the-fly objects in web sessions i prefer to have stateless web app , but it is not practical for modern web projects ;) however it is poison for enterprise projects.