I 100% support this method of customizing my default styles. When you go in and modify my social_widget.css file, any time you upgrade, all of your custom styles are going to be replaced.
Let me, quickly, explain my reasoning for using the !important calls. Over the past month I've fielded many questions about how my widget was not displaying correctly in peoples' themes. Many of these problems are caused by poorly written CSS files in individuals' themes. One such issue is "display: block;" when it is not a necessity. Using this in your #sidebar img styles will cause my widget to display vertically as opposed to horizontally as I've designed it. There are several other reasons for these !important calls.
I understand that some of you are not crappy CSS writers and my !important calls may prevent you from modifying my widget to work in your theme. I truly apologize for this, but not everybody is good with CSS and I need to make sure my widget looks right as far across the board as possible. Using wlanni's method above solves this issue with very little trouble on your part.
Again, thanks wlanni for stumbling across this information and providing it to my users.