Dassault ate Solid Works and my old Company Spatial Tech back in the 1990's to basically corner the Solid Modeling marketplace... I was a product manager & programs manager to help companies develop CNC machining products to deal with those modelers.
So who do you use for the Machining side? Edgecam? Their Solid Machining product looks a lot like the one I helped develop.
Concept of using solids to define Part Stock & Fixtures (things to avoid) Sometimes using "Boolean" operations to define material to remove...My product would also deal with the "faces" as surfaces as at times they were if the base modeler could handle them. Since earlier in my career I had a LOT of time dealing with 4-axis machines somehow that crept into the product...each face would have a "coordinate system" that would define the work planes & tool axis relative to the models Coordinate system...
If your a Hammer everything looks like a nail!! SO every time I see a solids based machining package AND I see certain characteristics relative to faces, coordinate systems, and how the CLdata is created relative to them...I smile when they look "familiar". Some complex math was required to reliably drive a tool and output the xyzijkm CLdata in a form most post processors could handle. 2D and simple Ball mills were pretty easy.....as long as you could deal with either a fixed tool axis (3d) or the tool perpendicular to the surfaces. Simple surfaces & ball mills is what most lower end packages can deal with. Under cut conditions required a silhouette algorithm...much more complex.
FORTUNATELY nothing in the concept of both designing and machining a cylinder head with a spherical combustion chamber is really complex....because the machining would ultimately be a series of Lines & Arc's and end up as G01's and G02&3's