That's why it only works with ES6 imports. ES6 imports must be made at the top of the file, and aren't dynamic. You must explicitly import what you need.
Additionally, this method only works with named imports. So for example, you can have two files:
File a.js
export a = 5;
export b = 6;
export c = 7;
export d = 8;
export default {a, b, c, d};
File b.js
import {a, b} from "./a.js";
console.log(a);
console.log(b);
c/d will never be included in the output file, nor will the default export. However, if you do:
import a from "./a.js";
Then it won't optimize at all, because all of those objects are referenced in the default export.
Note that it's possible I'm wrong as to the specific optimization method, but largely speaking this is how it should work.