Interesting statement. It led me to this paper:
Branch Prediction and the Performance of Interpreters - Don’t Trust Folklore (2015)
https://hal.inria.fr/hal-01100647/document (pdf)
"..Many studies go back to when branch predictors were not very aggressive. Folklore has retained that a highly mispredicted indirect jump is one of the main reasons for the inefficiency of switch-based interpreters."
"The accuracy of branch prediction on interpreters has been dramatically improved over the three last Intel processor generations. This..has reached a level where it cannot be considered as an obstacle for performance anymore."
Personally, I stopped worrying and used the most convenient implementation for my use case (portable interpreter written in C). Your set of primitives and how you code your Forth programs usually have a much larger improvement potential.
Is this statement for indirect threaded Forths only? What about direct threaded, token threaded and sub-routine threaded Forths?
[1] "threaded" has nothing to do with multithreaded: https://en.wikipedia.org/wiki/Threaded_code
https://stackoverflow.com/questions/5127833/meaningful-cost-...
"But in general, on modern processors, there is minimal cost for an unconditional jump. It's basically pretty much free apart from a very small amount of instruction cache overhead. It will probably get executed in parallel with neighbouring instructions so might not even cost you a clock cycle. "