When using a connection pool, you need to execute GotoWorkspace when you first acquire a session as you mentioned since you can't rely on the session being in a particular workspace. GotoWorkspace is a very fast procedure as it is simply setting context, so it should not adversely impact performance. As a result, whether or not you reset the workspace to a specific workspace is up to you. One thing to note is that the session will hold on to whatever workspace locks it currently holds. This could prevent other sessions from obtaining the same lock in certain situations. To avoid this, you would either want to be sure the workspace is in LIVE or some other unused workspace.