Workspaces of functions?
In the vast majority of cases only 1 function is ever running (and thus has a workspace) at any given moment and the only way saving its workspace would make sense is if you interrupt that function midway through, in which case you could just save its workspace with
save( filename )
as you would for the main workspace to save all variables in it.
save( filename, '-append' )
will append to an existing workspace if you save the base workspace then want to add to it with a breakpoint in a function workspace.