It depends on what the programmer says.
For rendering there is one main issue with per vertex lighting. In modern games we use per pixel or deferred shading so it really is not an issue. In less demanding games like mobile 3D games, they may use per vertex lighting which will result in a really ugly shadow or highlight.
There is a minor issue depending on the byte size accuracy. A vertex may be improperly lit because it thinks its on the other side of a mesh.
If you intersect a mesh too often it will cause a lot more calculations slowing down the game, it may also improperly light the object and push it into the background.
Manifold meshes have a purpose. There are 2 main shading steps for every DirectX game. 1st is the Vertex Shader. This shader writes to a depth buffer where each pixel holds a normal value and a depth value. In this shader step a manifold mesh will perform a lot faster. 2nd is the Pixel Shader. In this step, it takes the vertex shader data and calculates the final color by referencing textures and lighting information. In this step manifold meshes might matter depending on how the shader is written.
For gameplay purposes, its usually ideal to keep meshes as their individual pieces for things like physics. For instance for your table, if the leg is screwed in to the table then it would probably be best to keep them as 2 separate pieces of one final model. This way the leg can be broken off the table if needed. With that said, for physics you usually don’t delete faces to save some on the poly count. Its usually best if a piece of the mesh has no holes. You also usually don’t intersect geometry due to physics errors.
For memory usage, its usually best to have everything as one continuous piece. The amount of faces don’t matter, its the amount of vertices. Typically if a programmer gives you a poly budget, they would like the amount of vertices to be below that budget. The complex parts of the mesh in memory and for calculations are the individual vertices. So if you break up a mesh to excess in order to save polies, you might end up creating a mesh with too many vertices. For instance, if you have a table leg and delete the top of it to save a face, it typically makes no positive impact on rendering performance since the 4 vertices of the face are still there.
For me, I like to keep meshes as 1 continuous piece with no holes. They are a bit easier for me to texture, I can apply certain shader techniques on them with little issue like tessellation, and they typically don’t encounter shadow or lighting issues. The only time I use a separate piece in the same model is if the gameplay demands it, or there is potentially a shading issue.