When working with SharePoint objects, the correct usage of dispose is a re-occuring question. To answer all thoses questings you can grab SPDisposeCheck. This tool allows to test your solution for the correct usage of the dispose-pattern.
Yesterday a new version 14.0.4762.1000 was released, which now also offers checks, when a dispose is being called, when it is actually not needed.