Usar elementos vazios para fazer o "clear" dos elementos com `float` pode ser substituído pelo uso de pseudo elementos, ai você não fica com elementos vazios perdidos no markup. Só ver o último snippet desse artigo http://css-tricks.com/snippets/css/clear-fix/