Why light distribution for smooth and flat shading is so different in Blender Render?
Smooth shading is an attempt to programmatically and dynamically make triangular meshes "look" rounded (smoothed).  Even though the reflection looks smooth, the geometry remains unchanged:


With a perfect cube, there should technically be nothing to smooth; but you applied the shader, so it's gonna try to do something.  The problem that you're seeing in the first two pictures is that those faces are not technically four-sided... at least in the graphical/mathematical sense.  Four-or-more-sided polygons are only for the human eye and mind, not the graphics engine.  Those three faces are actually made up of six triangles.  When the smooth shader is applied to them, it's attempting to "smooth" all the edges and faces and that's why it looks like triangles (the Cycles version is less pronounced but if you rotate it, you'll see it).



When you subdivide it, though, you're adding a lot more geometry to the mesh (especially at level 6, that's 6 orders of magnitude more triangles).  So the shader has more geometry to draw from in order to "approximate" the look you're going for.

The same effect can be achieved by using the Edge Split modifier which adds weights to the edges (essentially doubling the edges, it adds more geometry to the mesh) at specified angles of incidence.  In this case, the edges at 90 degrees could be given the weights but the diagonal in the middle of the faces would be outside the threshold of the edge split.



As for the differences between BR and Cycles rendering, they're two totally different engines and they both have their own ideal uses.  But there's a lot out there on that subject.

EDIT: I should add, for plenitude, that the Edge Split modifier effect can be obtained without increasing filesize.  It's called "auto-smooth" and it's located under Properties Pane-> Object Data-> Normals.