but now, there are lots of mature, efficient and feature rich runtimes you can reuse: .Net, JVM, MoarVM, etc.
Isn't the problem always reference counting vs. tracing gc, though? If you expect DESTROY to run when your objects go out of scope, for example, most gc runtimes won't destruct objects in a timely fashion and I think some won't call destructors at all. I want to say dotNET core got rid of finalizers, for example.
But regardless of details, I agree that runtime-independence is the kind of aspirational thing that would make the pain of retiring XS worth it.