Shading / smoothing - how does it work with edges, faces, vertices? There are options in edit mode in Shading/UV to mark faces, edges and vertices smooth or sharp / flat, but I don't understand how do they work and can't find it anywhere in internet. I understand basics and I see difference between smooth / sharp edge. But how are those three (edges / faces / verts) related?

I see I can make a face smooth and this changes the look in Blender, but it doesn't make the edges around this face smooth. Are these unrelated? How does it work then? What is a difference between marking all edges of the mesh smooth, or marking all the faces smooth? What is the point of having all edges around the edge sharp, and the face itself smooth? Or the other way around?

Then there are also vertices which can be smooth or flat, but this seems to be related to edges. It looks like it just changes all edges connected to this vertex to sharp / smooth. Is this correct?

It would be great if someone could explain it a bit.
If you have a cube and you set everything to render as smooth, then the faces of the cube will be shaded as though the object were a sphere. You can still clearly see that it's a cube since that's obvious from the geometry of the mesh, but the shading will try to behave as best it can as though the cube was actually smoothed say using the subdivision modifier.
Now take a cylinder. If you create a standard cylinder then you can clearly see that it's not perfecly round, that the sides are made of 32 faces. In order to make this appear perfectly round you could increase the resolution of your mesh, which would lead to worse performance and longer render times, or you could just change the shading to smooth. Now if you change the shading to smooth for the whole cylinder then the shading will again try to make the cylinder look as though everything was smoothed, that's good for the sides, but it's not what you want for the caps, since you still want the cylinder to clearly be seen as such. That's when you'd need to go and change the shading of individual faces of your mesh in order to maximise the appearence. Go to edit mode, select only the top and bottom faces (the caps) and mark them as flat. Exit edit mode and you'll see the cylinder displayed perfectly, smooth on the sides, but flat on the caps.