> I have as a rule that if you are in a situation where there can only be 1 element with those properties (it would make no sense at all to have more), I should use the id.
Not a good idea: IDs take massive priority over classes in the cascade.
As someone who often has to override an enormous stylesheet which is all styled to IDs, this is a serious pain point.
Simple example: http://jsfiddle.net/B7tSz/