Overall, I think the Using the current and scratch workspace environments documentation covers it.
The current and scratch workspace settings, like all geoprocessing environments, are saved with your map document.
The main idea behind the current workspace is that you set the workspace once, then use only the base name when entering input and output paths
The primary purpose for the scratch workspace environment is for use by ModelBuilder. ModelBuilder needs a workspace to write intermediate datasets—datasets that are of no use once a model is run. Although its primary purpose is for ModelBuilder, there may be times when you want to set it for tool dialog boxes. Or, more likely, you set the scratch workspace to use in ModelBuilder and forgot to reset it before executing a tool using its dialog box.