#11 I would disagree with your answer. I don't know at all how Checkpoints can considered expensive. All they are is a simple XML file that the package uses to record its progress and current values of variables. They only exist while a package is running and if a package fails. If the package succeeds, they are totally deleted. For a complex load package that has a long run time they can be a tremendous time saver.
For example, I have a very complex set of parent-chid packages that i use to load 100's of millions of rows of data. My SSIS packages do everything, from FTP, to unzipping several layers of compressed folders, to converting files from Unix to Windows, to loading and processing. If I get a bad file from a vendor, my package will fail (by design). When i resolve the file issue, I am able to restart my package using a checkpoint. I don't have to worry about restarting a 30 hour process from the beginning, or trying to figure out what was done and what wasn't. You are able to essentially nest checkpoints by using them both in parent and child packages.