I blogged about this a while back at http://devgrow.com/best-bet-css-practices/
For practicality I find myself using multi-line CSS during development and use a CSS optimizer before going live, which makes the code look a bit cleaner and reduces overall file size (albeit not by much).