Es porque no tiene en cuenta un pequeño detalle en el html. A ver si lo descubre:
   
Código HTML:
Ver original- <!DOCTYPE html> 
- * { 
-   margin:0; padding:0; position: relative; 
- } 
- #con { 
-     width: 600px; 
-     margin: 0 auto; 
-     overflow: hidden; 
-     background: #d4d4d4; 
- } 
- #uno, #dos, #tres { 
-   float:left; 
-   width: 200px; 
-   height: 250px; 
-   color: #603; 
-   padding-bottom: 40px; 
- } 
- #dos { 
-   background: #fff; 
-   -moz-transition: all 1s; 
-   -webkit-transition: all 1s; 
-   transition: all 1s; 
- } 
- #ocultar { 
-   position: absolute; 
-   bottom: 0; 
-   left:0; 
-   width: 100%; 
-   height: 40px; 
-   background: #fc0; 
-   text-align: center; 
-   z-index: 5; 
- } 
- #ocultar:hover { cursor: pointer;} 
- #ocultar:hover ~ #dos { 
-   color: #fff; 
-   background: #404040; 
-   font-size: 400%; 
-   -moz-transition: all 1s; 
-   -webkit-transition: all 1s; 
-   transition: all 1s; 
- } 
-   <div id="ocultar">- ocultar </div>