<p dir="auto">Just found out about this dont know if you consider it as a bug or not</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="let foo, bar
let bim = boum
[ foo, bar ] =  ['foo', 'bar']"><pre class="notranslate"><code class="notranslate">let foo, bar
let bim = boum
[ foo, bar ] =  ['foo', 'bar']
</code></pre></div>
<p dir="auto">compile to</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="'use strict';

var foo = undefined,
    bar = undefined;
var bim = boum[(foo, bar)] = ['foo', 'bar'];"><pre class="notranslate"><code class="notranslate">'use strict';

var foo = undefined,
    bar = undefined;
var bim = boum[(foo, bar)] = ['foo', 'bar'];
</code></pre></div>
<p dir="auto">whereas</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="let foo, bar
let bim = boum;
[ foo, bar ] =  ['foo', 'bar']"><pre class="notranslate"><code class="notranslate">let foo, bar
let bim = boum;
[ foo, bar ] =  ['foo', 'bar']
</code></pre></div>
<p dir="auto">compile to</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="'use strict';

var foo = undefined,
    bar = undefined;
var bim = boum;
var _ref = ['foo', 'bar'];
foo = _ref[0];
bar = _ref[1];
_ref;"><pre class="notranslate"><code class="notranslate">'use strict';

var foo = undefined,
    bar = undefined;
var bim = boum;
var _ref = ['foo', 'bar'];
foo = _ref[0];
bar = _ref[1];
_ref;
</code></pre></div>
<p dir="auto">debugger link:<br>
<a href="http://babeljs.io/repl/#?experimental=false&amp;evaluate=false&amp;loose=true&amp;spec=false&amp;code=let%20foo%2C%20bar%0Alet%20bim%20%3D%20boum%3B%0A%5B%20foo%2C%20bar%20%5D%20%3D%20%20%5B'foo'%2C%20'bar'%5D%0A%0A" rel="nofollow">http://babeljs.io/repl/#?experimental=false&amp;evaluate=false&amp;loose=true&amp;spec=false&amp;code=let%20foo%2C%20bar%0Alet%20bim%20%3D%20boum%3B%0A%5B%20foo%2C%20bar%20%5D%20%3D%20%20%5B'foo'%2C%20'bar'%5D%0A%0A</a></p>
<p dir="auto">This code:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const foo = &quot;foo&quot;;                                                                                                                                                            

function foobar() {                                                                                                                                                           
    for(let item of [1,2,3]) {                                                                                                                                                
        let foo = &quot;bar&quot;;                                                                                                                                                      
        [bar, foo] = 1, 2;                                                                                                                                                    
    }                                                                                                                                                                         
}"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-s1">foo</span> <span class="pl-c1">=</span> <span class="pl-s">"foo"</span><span class="pl-kos">;</span>                                                                                                                                                            

<span class="pl-k">function</span> <span class="pl-en">foobar</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>                                                                                                                                                           
    <span class="pl-k">for</span><span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">item</span> <span class="pl-k">of</span> <span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span><span class="pl-c1">2</span><span class="pl-kos">,</span><span class="pl-c1">3</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>                                                                                                                                                
        <span class="pl-k">let</span> <span class="pl-s1">foo</span> <span class="pl-c1">=</span> <span class="pl-s">"bar"</span><span class="pl-kos">;</span>                                                                                                                                                      
        <span class="pl-kos">[</span><span class="pl-s1">bar</span><span class="pl-kos">,</span> <span class="pl-s1">foo</span><span class="pl-kos">]</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">;</span>                                                                                                                                                    
    <span class="pl-kos">}</span>                                                                                                                                                                         
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Generates this one:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// [ some code striped]
var foo = &quot;foo&quot;;

function foobar() {
    var _arr = [1, 2, 3];

    for (var _i = 0; _i &lt; _arr.length; _i++) {
        var _temp, _temp2;

        var item = _arr[_i];
        var _foo = &quot;bar&quot;;
        (_temp = 1, _temp2 = _slicedToArray(_temp, 2), bar = _temp2[0], foo = _temp2[1], _temp), 2;
    }
}"><pre class="notranslate"><span class="pl-c">// [ some code striped]</span>
<span class="pl-k">var</span> <span class="pl-s1">foo</span> <span class="pl-c1">=</span> <span class="pl-s">"foo"</span><span class="pl-kos">;</span>

<span class="pl-k">function</span> <span class="pl-en">foobar</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">var</span> <span class="pl-s1">_arr</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">]</span><span class="pl-kos">;</span>

    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">var</span> <span class="pl-s1">_i</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span> <span class="pl-s1">_i</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">_arr</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span> <span class="pl-s1">_i</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">var</span> <span class="pl-s1">_temp</span><span class="pl-kos">,</span> <span class="pl-s1">_temp2</span><span class="pl-kos">;</span>

        <span class="pl-k">var</span> <span class="pl-s1">item</span> <span class="pl-c1">=</span> <span class="pl-s1">_arr</span><span class="pl-kos">[</span><span class="pl-s1">_i</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
        <span class="pl-k">var</span> <span class="pl-s1">_foo</span> <span class="pl-c1">=</span> <span class="pl-s">"bar"</span><span class="pl-kos">;</span>
        <span class="pl-kos">(</span><span class="pl-s1">_temp</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-s1">_temp2</span> <span class="pl-c1">=</span> <span class="pl-en">_slicedToArray</span><span class="pl-kos">(</span><span class="pl-s1">_temp</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-s1">bar</span> <span class="pl-c1">=</span> <span class="pl-s1">_temp2</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">foo</span> <span class="pl-c1">=</span> <span class="pl-s1">_temp2</span><span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">_temp</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">And should generate this:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// [striped code]
        var item = _arr[_i];
        var _foo = &quot;bar&quot;;
        (_temp = 1, _temp2 = _slicedToArray(_temp, 2), bar = _temp2[0], _foo = _temp2[1], _temp), 2;
// [striped code"><pre class="notranslate"><span class="pl-c">// [striped code]</span>
        <span class="pl-k">var</span> <span class="pl-s1">item</span> <span class="pl-c1">=</span> <span class="pl-s1">_arr</span><span class="pl-kos">[</span><span class="pl-s1">_i</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
        <span class="pl-k">var</span> <span class="pl-s1">_foo</span> <span class="pl-c1">=</span> <span class="pl-s">"bar"</span><span class="pl-kos">;</span>
        <span class="pl-kos">(</span><span class="pl-s1">_temp</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-s1">_temp2</span> <span class="pl-c1">=</span> <span class="pl-en">_slicedToArray</span><span class="pl-kos">(</span><span class="pl-s1">_temp</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-s1">bar</span> <span class="pl-c1">=</span> <span class="pl-s1">_temp2</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">_foo</span> <span class="pl-c1">=</span> <span class="pl-s1">_temp2</span><span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">_temp</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">;</span>
<span class="pl-c">// [striped code</span></pre></div>
<p dir="auto">So, the current babel version (5.4.3), in a for loop overwrites the value of the var declared as const.</p>