Relativamente a OOCSS uma das premissas é não utilizar IDs para aplicar os estilos e ter o cuidado de tornar os elementos o mais generalistas possível.
Supondo uma estrutura do género
<section class="section-container news">
<h1 class="section-container-title">Noticias</h1>
<div class="section-item box-small">
<header class="section-item-header">
<h2 class="section-item-title">Titulo da notícia</h2>
<p class="section-item-date">2 Maio 2013</p>
</header>
<div class="section-item-body">
<p>Texto referente à noticia</p>
</div>
</div>
</section>
Este cenário permite-me utilizar as class de CSS sem estarem dependentes de outros elementos, como por exemplo
.section-item {}
.section-item-title {}
em vez de
#noticias .noticia{}
.noticia .titlulo {}
O facto de utilizar a palavra noticia, implica que caso queira recriar exactamente o mesmo elemento para algo que não é noticia, tenha de replicar os estilos de forma a não induzir em erro quem, futuramente, possa mexer no projecto. Ex: usar o mesmo bloco numa listagem de produtos.
Normalmente adiciono classes com nome generalistas que me permitam aplicar estilos dependendo da sua relação com os elementos.
Utilizando o exemplo do HTML acima usando a class .box-small posso definir que para um bloco de noticias cada section-item tem 200 pixeis de largura, copiando exactamente a mesma estrutura
posso utilizar esta mesma class em outra situação onde os itens tenham 250 pixeis de largura.
.section-container {float:left; margin:20px; }
.section-item {float:left; padding:5px; background:#efefef; border:1px solid #ddd}
.news .section-item {width:188px;}
.products .section-item {width:238px; border:none; }