Your question is really more an issue of understanding EJB and not JBoss specifically.
When using commit option A, the container assumes exclusive "ownership" of the
database so it can cache the data very aggresively. However, at no time does the cache
contain incomplete writes to the database
Will flush() write the contents of the cache to the data store (as the name suggests),
or simply invalidate the contents of the cache?
If running in commit option A, perhaps flush() knows that it is in control of the DB
and therefore knows that it is in sync with the DB and there would be no need