The current workspace name can be a null string (""), especially if switching profiles in-session.
If you wanted to get clever, you could hook a reactor to monitor the WSCURRENT system variable and have it log the workspaces to the registry (e.g. under the current profile) or an external data file as they are changed.
If you wanted to get *really* clever the available workspace names should be available through dotNET which could be wrapped as a LISP function. Somebody may have already done this somewhere.