When to model procedurally?
When you need variation or have to respond to changes in direction.
You don't have to go out of your way to make things procedural. Houdini, by it's very nature, is procedural. If you're dropping nodes, you're using proceduralism. You can always go back to any node in the graph and change a property. You can always surface any property in a node as part of the user interface in a digital asset.
However, there is a caveat. Say you manually select half of some geometry and do an operation on it, like a extrude. What you've done is group a specific set of faces. Further up the graph, you decide to edit a node that increases the number of polys. Now your extrudes downstream are broken because the face numbers have changed. So before you manually select half of the geometry, think about what you're trying to accomplish. You can usually write a group expression for that. For example, @ptnum < (@numpt/2). With a group expression in place, changes to the number of polys upstream won't affect your extrudes downstream. To me, this is the crux of thinking procedurally.