Non riesco a capire il "rationale" di tutte queste elucubrazioni.

Comunque devi rivederti il capitolo sui selettori della tua guida CSS preferita, perche` mi sa che stai facendo errori di logica:

#bla div,span { ... }
Tutti i div dentro il blocco con id="bla" e tutti gli span (indipendentemente da dove stanno)

---
Comunque per semplificare la cosa, ti conviene usare le classi:
codice:
<div id="bla">
  <span>span</span>

  <div id="ok2" class="lovedo_block">
    <div id="ok" class="lovedo_block">ok</div>
  </div>
  <div id="ok3" class="lovedo_block">
    <span class="lovedo_inline">ok span</span>
  </div>



  <div id="bla2">bla2</div>
  <div id="bla3">bla3</div>
</div>
CSS:
codice:
#bla * {
  display: none;
}
#bla .lovedo_block {
  display: block;
}
#bla .lovedo_inline {
  display: inline;
}

MA se non devi usare IE, la cosa si semplifica, dato che puoi usare il selettore
figlio diretto
>