I don't think I'd call any of those reasons good; the main thrust of them is "const doesn't do everything, so don't let it do anything". If that line of reasoning is appealing, then one might as well continue using var.
const x = 1;
(function() {
const x = 2;
console.log(x);
})()
or from an argument: const x = 1;
(function(x) {
console.log(x);
})(2)
So it has limited value in any code that uses closures.If you've declared const x = 1, then that will hold for your scope?
If you go into a separate scope... Well, then you're in a separate scope?