From experience short-codes are short-sighted. When you redesign or get rid of shortcodes all your old articles will show them and the designs will be broken.
I think shortcodes are a shortcut you don't want to take if your seriously trying to build content. In the long run they will hurt you.
But, if your just messing around with wordpress or causally blogging, short code away :).
I personally think best practice is to learn HTML, CSS and use that to build interesting content in your articles... Supporting legacy CSS is easier, if you know your creating very specific designs in your article then write the css in the article it-self using <style>
tag.
That's my opinion at least.