This is still just a question of CAM software AND the users of said CAM software. There are a bunch of CAM software packages out there that can take meshes as input, and another bunch that cannot. More important is if the operator of the software knows how to deal with mesh models - or if they even want to. Many people in the “mechanical” field do not, because meshes do not represent the way they look at the production world. Their world is defined by lines, arcs, planes, fillets, and the like. Many are working with “feature recognition”, which needs surface edges to figure out what is a pocket, a drill hole etc. Meshes will not do for this type of approach.
For milling on meshes, you often need to invent your own machining strategy instead of relying on those traditionally guided by surface edges and the like. That sometimes implies creating your own set of guide geometry such as drive curves, etc. in order to determine how the tool passes over the mesh.
If the mesh is too coarse, you will see facets in the finished product - there is no “smoothing”. So the mesh does need to be smooth enough for the type of material and surface finish. There is a huge difference in what is required for machining a carved wood object as opposed to a high-polish plastic or metal object.
99% of CAM programs use meshes anyway to run toolpaths - even if most of the time the users aren’t aware of the fact. The reason is that in order to generate 3D toolpaths, the finish surfaces first need to be offset by the tool radius - the tool runs on it’s “centerline”. These offsets are done behind the scenes, the user never sees them. The toolpaths are then created on those offsets. Offsetting arbitrary geometry is very difficult to do reliably with a surface model, it is much more reliable with meshes. So the surface model is usually converted to a mesh anyway for offsetting (again, behind the scenes, the user doesn’t see this).
On top of that most machine controls still only understand straight lines for surface machining. These days, with high speed data transfer and high speed management of toolpaths and servo loops, this is not a problem - you just throw a fat stream of tiny straight paths at it, and the control handles it and turns it into smooth motion.
For 2D geometry, there is no substitute for good curves, however. If you need precise curved/circular pockets, you will need to have those curves in the file, otherwise you will end up with facets - and probably will not be able to take advantage of any automatic routines the CAM software might have for pocketing, etc.
I too prefer the precision of a surface model for creating toolpaths. However, there are a number of types of objects I do that are simply not possible to do well if at all with surfaces - terrain models, for example… Meshes save the day.