HttpSession is only available to web clients. If you want your Application to maintain session state, regardless of client-type, then Stateful Session Beans are the way to go.
Another thing that is typically overlooked is that additional level of transaction control provided by Stateful Session Beans implementing the SessionSynchronization interface.
That said, in general I tend to stay away from SFSBs. The majority of
J2EE Applications only have a web client and HttpSession objects are easier to work with.