First of all, I guess you original title was wrong ;)
Right now, I don't remember if the state is replicated at the end of the transaction or at the end of the call. I know that it has (still is?) been at the end of the invocation. I did wrote the code so that it is only replicated at the end of the transaction but don't remember if I have ever commited that...
So, let's say the end of the transaction and the end of the call do match ;) If that's the case, then the state is replicated (using any protocol specified at the JG layer: tcp, multicast, broadcast, etc.) EXCEPT if you do implement a method having this signature on your bean implementation:
public boolean isModified();
If it exists, we will call it before propagating the state to other nodes. This is an easy to implement optimisation that comes from the CMP1.1-land.
As for "what is a SFSB state", check the EJB spec wrt to State-Passivation: it is exactly the same definition that is used for clustering.
Thank you Sacha,