title: Mutable difference between ES6 named and default exports
body: <p>When importing/exporting data from ES6 modules, mutability of that data appears to be different between named imports and exports. Is there a reason for this or some fundamental difference I'm not understanding?</p>
  
  <pre><code>// counter.js
  export let count = 0;
  
  export const incrementCount = () =&gt; count += 1;
  
  export default count;
  </code></pre>
  
  <pre><code>// main-default.js
  import count, { incrementCount } from './counter';
  
  console.log(count); // 0
  
  incrementCount();
  incrementCount();
  
  console.log(count); // 0
  </code></pre>
  
  <pre><code>// main-named.js
  import { count, incrementCount } from './counter';
  
  console.log(count); // 0
  
  incrementCount();
  incrementCount();
  
  console.log(count); // 2
  </code></pre>
  
  <p>In both scenarios, I would expect <code>count</code> to increment. However, this only happens when using named exports.</p>