A compiled functional language doesn't (have to) have much overhead compared to a dynamic language with a fancy runtime.
Although I guess smalltalk has had a (JIT) compiler for a long time, so it's more about runtime/bytecode efficiency (with dynamic types) vs native compilation.