Default implementation for getProgram() et al

I think 90% of all plugins never touch those methods:

const String getName() const override;

bool acceptsMidi() const override;
bool producesMidi() const override;
bool isMidiEffect() const override;

int getNumPrograms() override;
int getCurrentProgram() override;
void setCurrentProgram (int index) override;
const String getProgramName (int index) override;
void changeProgramName (int index, const String& newName) override;

The first block is defined from Projucer defines, the second block is rarely used.

Would it be an option to provide a default implementation (removing the pure virtual) for those?

That would reduce a lot of noise in many projects, and they are still available to be overridden.