3D modeling is a production step that turns an existing design into a usable 3D model. The model is made for a target purpose, and the model structure fulfils the requirements from the end use and from the pipeline steps before that.
Modeling stage itself might be broken into multiple steps and might have multiple outputs if needed or required.
You used the word “shape” but since this is 3D, the term should be “form”. Both are important but have to be specific about the difference
We’re not modeling anything from our heads. If you can’t see what you’re modeling, you shouldn’t be modeling. References are used everywhere; If you’re creating a wine glass or a coffee cup, find references. If you’re trying to create a character of your own design you should be designing, which has different workflows and goals than modeling, although it can take it into account.
When it comes to modeling stage, it has its own problems to solve. You have to be able to interpret the forms and proportions, and make decisions about the structure based on those and what the end use requires. Those can be things like structure flow for pipeline stages or modeling workflow itself, or deformations for animation. The structure also takes the density into account, and how it affects the shape/silhouette.
If you try to juggle all of that and create a design of any kind of complexity at the same time, it’s going to fail. Even if you think you know something so well you should be able to model, you still can’t draw notes about the decisions you made for modeling if it’s just in your head. It all begins from understanding what is being modeled, what the forms are, and then decide on the workflows to get those built in 3D. Could separate forms and proportions from technical modeling which would be sculpting or blocking, then retopology for the structure. Sculpting -> retopology workflow is beneficial for modeling when the forms are complex, or when you don’t know what the forms are, in which case you’re designing.
I’m assuming that by geometric shapes you mean primitives. Primitives are just starting blocks that help to make something, but you don’t actually need any geometry to start with. Could start with an object that has no object data (geometry), and be able to complete the model structure you want. What you start with and what tools you use isn’t that important, the various tools and workflows that you come up with just help to achieve the end result easier, faster and more efficiently. It’s the end result that matters the most.