Note that you can have multiple procedures/functions within the same module (you do not need a separate module for each procedure).
A lot of it is personal preference. I tend to not like to overwhelm my procedures and make them too big, so I like to break them up into logical chunks. It can make debugging them a little easier too.
Another reason for doing this is you can make your procedures reusable, especially if you make them generic and feed in parameters. So you can improve efficiency that way.