"If the clients executes in a transaction,the client's transaction is not marked for rollback,and client can continue its work"
the client of a EJB (that may be also an EJB) is running in a transaction, perhaps he made already some DB-changes. He calls annother EJB that has the transaction attributte, let's say "RequiresNew". This second EJB marks its transaction with "setRollbackOnly" (in the case of CMT). All DB-changes that were made by this second EJB are rolled back. However, since the client run's in his own transaction context, he may still commit the changes.
this behaviour would be different if second EJB would run with "requires". Then it would run in the same transaction context as the client, and all changes (those of the caller as well as those of the calle) would be rolled back.