The problem is that ".blotter" is being automatically exported to the workers, but to doSNOW's "export" environment, not to the global environment. This doesn't confuse the blotter package, but it does prevent your "rm" command from removing "account.Snazzy" and "portfolio.Snazzy" from the real ".blotter" environment.
One solution is to add .noexport=".blotter"
to foreach. Another solution is to specify the environment more explicitly when executing "rm":
try(rm("account.Snazzy","portfolio.Snazzy",pos=.GlobalEnv$.blotter),
silent=TRUE)
doSNOW doesn't spawn a worker for each task because that could be quite slow. Even for local workers, the time to launch an R session can be significant compared to the time to execute a task, especially on a cluster using ssh. And more importantly, if workers execute multiple tasks, you can send large data sets to them once, and reuse that data for many tasks, thus amortizing the communication costs.