I don't see why we need to leave anything out at all. Compiled Perl programs would require the Perl DLL. But since Visual Basic has done that all along, big deal.
Meanwhile, if you really really want a (small) single exe file solution, I can suppose that (a) you specify what you want to include or leave out, and get an error if you violate that; or (b) the compiler knows what you used or didn't, and leaves things out at link-time automatically. If nothing in the program called eval(), for example, eval() doesn't get pulled in by the linker. (If you do include eval, you might as well pull in everything, so don't worry about the lack of static analysis).