There is some truth in your observation, there are general patterns similar across features but no absolute rules about css class structure. All features provide enough hooks that if you understand CSS selectors you can style it any way you wish. Don't think in terms of what you may perceive as missing as compared to another feature, think in terms of what is there that you can use to form a selector. If you read the linked article you can get past thinking just in terms of class names and learn to create more complex selectors you will be able to style things as you wish.
For example if you want to style something in the links module that lives in the div that has the class modulecontent, you don't want to just use the .modulecontent as that would affect other features. Instead be more specific with
.linksmodule .modulecontent {}
which would only apply to .modulecontent that is inside a .linksmodule.
I am making a change to my copy of the feed module to make it more consistent by putting the moduletitle inside the panelwrapper.
Hope it helps,
Joe