Almost, but that’s not quite there. That statement makes multiple dispatch seem like an addon, while if you really look at the design of Julia, multiple dispatch is the sole reason why it is able to look dynamic while compiling to fast code. It’s very integral to the whole story as to how the compiler is able to optimize the way it does, and the story would be significantly compromised without that mechanism.
That’s partially why there have been a few billion dollars into Python to only get a few JITs that are 30% faster: you simply cannot directly match the semantics of Python and make everything compile to fast code. You have to tone down some features and change some of the dynamic behavior into statically-definable behavior (i.e. multiple dispatch) if you really want to be able to map it all down to something statically well-defined for most use cases.