rather than saying "i need plugin X", you say "i need interface X" [...].
Isn't this the same? A plugin name is nothing but the promise of speaking a certain protocol. When you talk to a plugin, you talk in that protocol, but you don't care how exactly the plugin does its thing. Caring about it doesn't even make sense, because you can not know what exactly the plugin does - and that's completely intentional.
I get your point, I agree with it, but I think my approach already does this, in a more general way. Just adjust the granularity of what you think of as a plugin. And keep in mind: Multiple plugin names can all be handled by the same process.