This is kind of the general idea I have, but could we please clarify a few things?
Desired sketches would use the installed version of the library.
#include <lib.h>
// instead of #include "lib.h"
I guess the proposed fix for lib.h will make it work with <lib.h> and not the local file in the .ino folder, right?
Using the #define USE_VERSION_B sound easy enough, using the #ifdef is the part that confuses me a bit.
In lib.h:
#ifdef USE_VERSION_B
// how to load SoftwareSerial_version_b.h ?
// like this? if so, what should be the location of "SoftwareSerial_version_b.h" and "SoftwareSerial_version_a.h"
#include "SoftwareSerial_version_b.h"
...
#else
#endif