What is a good approach to reduce the number of faces on this chair model See the model below. I first scanned it with a 3D scanner and then remodelled every part of it. I used the subdivision modifier a lot. Resulting in a smooth surface. Sometimes a surface is completely flat, like the top of the seat for instance. I used the subdiv modifier here to get a smooth curvature on the edges.

Is it good practice to reduce the number of faces on flat surfaces? I am thinking of modelling for VR environments for instance. What is a good approach to reduce the number of faces on this seat, for instance.
You can reduce the number of quads on a flat surface without generating Ngons with edges poles in red, by doing something like this (I don't know the name of that specific kind of retopology)

High poly is useful for boolean operations or deformation, to reduce the number of polygons, and keeping detail you can use for baking.