A module will only be evaluated once but it is possible to have two copies of the same module installed in a project, in which case that module and the code in it will be executed twice.
Consider the following package structure:
index.js
package.json
node_modules/
├── package_b/
│ └── node_modules/
│ └── package_a/
| └── index.js
└── package_c/
└── node_modules/
└── package_a/
└── index.js
If the top level index.js imports from package_b and package_c, then package_a will be imported (and therefore evaluated) twice.
Most people are not aware of this behaviour yet probably need to be if they landed on this particular question.
Here is an old but good article on understanding-the-npm-dependency-model with further detail on how and why npm does this.