Weil du an einer Stelle clear verwendest, die mit deinem beschriebenen Vorhaben absolut nicht uebereinstimmt.
clear bestimmt, auf welchem Element das floating wieder aufgehoben werden soll - welches Element sich also ganz normal "auf einer neuen Zeile" breitmachen soll, um's mal umgangssprachlich zu formulieren.
Naja so geht's aber auch nicht:
<div style="width:100px;clear:left">1</div>
<div style="width:400px;float:left">2</div>
<div style="width:50px;float:left">3</div>
<div style="width:100px;clear:left">1</div>
<div style="width:400px;float:left">2</div>
<div style="width:50px;float:left">3</div>