"El valor hidden se utiliza cuando no se puede controlar la cantidad de contenidos que se van a incluir dentro de un elemento pero al mismo tiempo se quiere controlar de forma precisa el tamaño de cada elemento de la página."
SI no tienes definido el alto, este será auto, por lo que el overflow realmente no ocultara nada y mostrará todo el contenido.
http://www.librosweb.es/referencia/css/overflow.html
Ahora el por qué funciona en cuanto al float, no tengo la más pálida idea, pero funciona.