One of the best aspects of ES6 modules is the static nature of import and export declarations. Thanks to this, we can check at compile time if imports and exports are correct, perform injections (such as polyfills for older browsers), and bundle them together if necessary (like webpack does). These are amazing positives that save us a lot of runtime checking that would possibly slow our application down.
However, some people abuse how ES6 modules work. The syntax is super easy—you can import module wherever and use it easily. This is a gotcha. You may not want to abuse importing.