Another reason not to share a single DataAccessAdapter is that transactions are bound to an adapter instance. From the docs:
"Because the transactional code is inside the DataAccessAdapter, every method of the DataAccessAdapter object you call after you've started a transaction is ran inside that transaction, including stored procedure calls, entity fetches, entity collection saves etc"
Jeff...