It is already doing what V8 does. It's only compiling when needed. The problem is when you start to put in too many things in the startup script, which is going to compile the things it says it "needs", even though you may never use when running.
Julia actually already has an interpreter that it uses for some stuff (like code in the global scope). adding more of a teired jit approach is on the Todo list, but it's a very large project.