to disclaim right off, i have NOT used SOFIA. admittedly, this is the first time i've ever heard of SOFIA. however, i just went through the side-by-side feature comparisons. injecting personal opinions having been a struts developer for over 2 years, here are some of my thoughts. please feel free to jump in.
1. internationalization - this is not supported, something that is a major consideration if you are doing a global localization site. "impact of providing support similar to struts is estimated at 2 weeks of development effect"...so the developer will need to study how struts i18n work and modify SOFIA to do the same???
2. there seems to be heavy AWT-like UI components mentioned as an advantage. if you are planning on using AWT/Swing and other thick-client UI controls, then SOFIA is advantageous. it also looks like SOFIA provides quite a bit of pre-built UI components judging by the com.salmonllc.gui package.
3. with the emergence of
JSF and its gaining popularity, struts has facilities to integrate JSF into its framework. future version(s) of struts (shale 2.0 recommendations) will seek to fully integrate JSF. i am not certain where SOFIA stands on JSF.
4. there are several mentions of direct relational DB support by SOFIA (as struts 'does not'. direct interaction with the DB from the controller/action layer is just...bad. struts supports lightweight connection pool because enterprise app architecture will NOT allow for this kind of interaction.
5. dreamweaver interaction - being a DW fanatic myself, this seems to be a nice thing by SOFIA. however, WYSIWYG is never a good way to write efficient code. this is INDEPENDENT of writing pages using struts tag-libs. in essence, without SOFIA, you can still create your pages using WYSIWIG and wrap struts tag around the HTML's. DW has a way for developers to import tag-libs to do coding help. i use DW to do all my JSPs. other HTML editors such as Page Composer in new version(s) of WSAD support struts visual development...ugh...if that is your cup of pee...i mean tea.
you need to define your needs and future outlooks before selecting a framework. consider ubiquitousness when it comes to supports (just like you said). consider also maintenance of applications. it will be much easier to hand it over to new developers since struts developers are growing in numbers. do your app in SOFIA is like bringing a Beta tape of your wedding over to your neighbor house.