So if the last V8Engine spawned from a managed runtime is disposed after the managed runtime has already been disposed, will the unmanaged runtime instance be destroyed/deallocated?
Yes, it should. The managed engine and runtime are proxies for reference-counted unmanaged objects. Disposing or finalizing a proxy decrements its target's reference count, and the target is destroyed when its reference count reaches zero. Furthermore, the unmanaged engine holds an additional reference to its parent runtime, so the runtime will be kept alive as long as the engine remains active, regardless of whether a runtime proxy exists on the managed side.
Thanks!