Instances of Plugin<Project>

When a plugin is applied to multiple projects within a build, is a new instance of that Plugin<Project> created for each project to which it is applied, or are there ever cases where a Plugin<Project> instance can be shared / reused between projects?

Is there any difference in behavior between multi-project builds, composite builds, and buildSrc?

I assume that every project gets its own exclusive instance of the plugin, but I don’t want to introduce bugs because of a faulty assumption.

I also assume that the same instantiation rules apply to all types T for Plugin<T>, not just for Project, but please let me know if I’m wrong.