Just to give some optimism for future progress, you can get this number waaaaaay down with the sort of approach used in the (experimental) StaticCompiler.jl:
julia> using StaticCompiler, StaticTools
julia> hello() = println(c"Hello, world!")
hello (generic function with 1 method)
julia> compile_executable(hello, (), "./")
ld: warning: object file (./hello.o) was built for newer OSX version (10.14) than being linked (10.12)
"/Users/me/hello"
shell> ls -alh hello
-rwxr-xr-x 1 me staff 8.4K May 22 16:38 hello
shell> /usr/bin/time -l ./hello
Hello, world!
0.00 real 0.00 user 0.00 sys
1798144 maximum resident set size
0 average shared memory size
0 average unshared data size
0 average unshared stack size
455 page reclaims
0 page faults
0 swaps
0 block input operations
0 block output operations
0 messages sent
0 messages received
0 signals received
0 voluntary context switches
1 involuntary context switches
So 1.8 MB total memory usage (less than ls
on my system) and an 8.4 kB executable.