except it's not true that all working interpreters are direct c interpreters. plan 9's rc implements a virtual machine (which it even bootstraps) and interprets the virtual machine.
How come? When was that true?
Looking through the source code of rc (http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/rc/) there is absolutely nothing of the sort.
It's a simple interpreter that creates some intermediate bytecode out of the syntax tree, and then execute it in a stack machine.
Very much like mawk or such.
You probably have vague recollections about limbo/inferno, go or other similar failures they've churned out since then.