All~
Perhaps I am missing something in this discussion, but wouldn't it be possible to have the vtable within a PMC be layered rather than the PMC itself. This would allow the data portion of PMC's to remain in a fixed location, while allowing new vtable layers to be pushed/popped. If what I am suggesting is an entirely different beast, than I suppose I would appreciate an explanation of the differences. But I would imagine that one could simply place a new vtable in the PMC and that vtable functions would have the ability to call the layer below them (possible after doing something like obtaining a lock). Or they could throw an exception and thus prevent certain vtable slots from being accessed.
Hope that makes sense, Matt