I develop SharePoint solutions mainly for SharePoint 2010 with Visual Studio 2010. The regular SharePoint solution development outputs mainly assemblies, which is deployed to GAC and used by other stuff (pages, webparts, controls, etc.). From googling I found that Release configuration includes c# code optimization and doesn't include debug metadata. So I considered that it is useful only on production with high-load parts. And it's acceptable only for stable code - could we connect to release-built assembly on production server with debugger?
So main question is: when to use Debug or Release and which benefits it can give?