Besides introducing new VM classes, plugins may influence existing VM behavior. Introduce convenient hooks for it. Without those hooks it still was possible, but in much less correct way - overriding class methods from plugin module.
It is intended to at least be extended by subclasses, so isn't really internal, rather part of API.