The simplest answer, way too many variables to just push 'mill-part.'
CAD gives you a whole lot of part information, but what are all the steps needed to transform that information into a machined part?
Think of the entire process in manual terms and it should become clear. If I designed a part, now how am I going to produce it? If I have a 2" hole through the center of the part, what methods can I use to produce the hole? What tools will I use? If the CAD is responsible for answering these types of questions, then how does it gather and decide the right answer? CAM.
A CAM program is an interface to walking you through the process or workflow. Feed it the necessary information about the materials, tools, methods, and CAD dimensional data and it will crunch the numbers to give you a toolpath.
G-code is just the state of the game from transition from manual processes to automated. It is a simplified machining 'basic' if you will.
CAD/CAM can live under one roof. But it really doesn't change the overall process much.
If your part is simple enough, than CAM may not even be necessary. You could manually write your process in G-code or use a 'conversational' machine to program the process. But I'm guessing if what you do requires the power and features of SolidWorks, you are probably in the CAM realm.