I don't think the plugin should get a dependency on any backend classes. If anything they should be interfaces, but all of these interfaces are 100% optional. In fact, fruux does not use the principal backend system at all, and I was considering removing them entirely from the next sabredav version.

The plugin should 100% rely on the objecttree to find all it's information.