The term “plug-in” isn’t unique to audio software, either. Word processors, web browsers, IDEs, media players, etc., etc., all make use of them.
A plug-in adds functionality to a host. It could be useful to have access to more of the host’s functionality than real-time DSP and MIDI messages.
One of my plans is a microtonal sequencer that could, when desired, stand in for a DAW’s built-in piano roll (which are something DAW devs hate spending time perfecting, and usually suck). That’s easy as pie with Reaper, as it already allows script access to time signatures and tempo changes (both sending and receiving), but few others have made this much effort to allow advanced scripting. The user would have to add each time signature change manually to both the sequencer and the DAW.
Cubase has allowed limited control of many program functions for a long time, but, alas, only through MIDI, and adding time signature changes, e.g., still required clicking around a dialog, last I checked.
I haven’t looked closely at Melodyne, but I understand one of the motivations for needing extra info from the host would be to analyze an audio track polyphonically in order to alter only some of the notes; I suppose that this would be much higher quality if you analyzed the entire track than just processing audio on the fly, considering that some momentary change could be either someone taking a breath or the first instant of a note’s attack, and you’d want to process those differently.
There are probably other potential uses (convolution?). Point is, there’s no reason you can’t allow a software plug-in to do more than just process one block of audio and MIDI at a time.