I understand flat shading is a big no-no for parts of the geometry that curve, so transition between face do not show. I also understand the difference in the viewport: flat shading gives a single color to a whole face whereas smooth shading interpolates across a single face or many faces depending on lighting. But when it comes to parts of the geometry that ARE actually flat (e.g. table top) and have a cycles shader on them (vs the single viewport color), I find it really difficult to tell that the best option is (or at least why). See the comparison in my current project (low sampling):
The area circled in pink must be smooth: it is curvy and otherwise faces will show. However, area in green and blue have a completely flat geometry. The green area seems more realistic when flat shaded (ignoring the noise due to low sampling), which makes sense, but the blue area looks better smooth, for a reason I can't put my finger on. I know that there are never any 100% true flat surfaces in reality, but surely everything cannot be smooth shaded, because of what can be seen in the green area (makes a rectangular prism look like a cylinder). And the blue area is just fine smooth shaded, and the angle is 90d too! Why is that?