All The information are great , i would like to add something ,
if u want that ur webpart to available across the site then put it in The GAC ,if not then BIN is the best place .
and if u want to perform some code level Security Rise , then user the SPSecurity to run ur code with elevated privillage