Have you taken a look at VisualMill for Solidworks? It plugs into the Solidworks workspace and allows you to make changes on the fly, without having to switch back and forth between different programs. You don't have to define offsets more than once for each tool; once you call that tool you shouldn't have to make any manual changes. But I'm not sure that it recognizes features "automatically" - usually a hole, for instance, will be defined by a circle at the edge, which you'd pick as a machining region when writing the hole-machining operation. It's not a cheap program, but the base configuration (which seems like all you'd need, at least initially) costs less than anything else with a comparable feature-set. Here's a link:
VisualMill for SolidWorks - Affordable Integrated CAM Software for CNC machining of SolidWorks models
Andrew Werby
ComputerSculpture.com — Home Page for Discount Hardware & Software