I do not wish to maintain two separate programs one for 0x27 and one for 0x3F if at all possible.
Of course, you can adapt the "I2Cfinder" code to do this automatically (you only need a line or three of the code, only one test if there are only two alternatives), but I cannot see why it would be worth the bother. Do you intend to "dynamically" swap displays on a given MCU unit? Why?
Or perhaps there a single common f/w build and then the displays are added later and there is no guarantee as to what the i2c address will be.