1/2. I'd like to think that Moodle unit tests should work with any combination of plugins installed. But I don't think its straight forward working out who's responsibility it is to deal with this. Sometimes I think the plugin will need to take the responsibility to maintain the normal state during phpunit tests.
There is a lot of config state in Moodle, we know how many setting there are and if you had to verify state of every single one of them before beginning your test, you'd make the test unreadable. Can't think of a good example off the top of my head, but lets say your plugin enabled an imaginary $CFG->disableallpermissionchecks I think it'd be unreasonable for every single test involving permissions to verify that. (Especially because there might be 10 similar flags which could affect the result).
3. More importantly, we'd very unlikely spot it.
4. Or maybe if its really problematic and doesn't affect your plugin, you could wrap the state altering changes in a PHPUNIT_TEST or choose a different approach where it only happens when the plugin is enabled?
Another example would be a behat test - you might have a plugin which has an event listener which unenrols a student from a course when they get something wrong - would it be reasonable for the behat tests be able to deal with any situation caused by things like that?