A "blink 1 second" program is compiled as 5V 16MHz Pro Mini, cycles run at exactly 1 second. OK.
Next trial: I set the CKDIV8 bit checked (active) and the result is a blink every 8 seconds. OK.
(see: AVR® Fuse Calculator – The Engbedded Blog, and use avrduded GUI or avrdudess GUI for easy of programming fusebits).
Next trial: I keep CKDIV8 bit checked and compile as 8MHz 3.3V Pro Mini; the result is a blink every 4 seconds: OK (compiler told it runs at 8MHz yet clock is at 2MHz makes the program run 4 times slower as intended.
Next trial: I change the boards.txt at the Pro Mini 3.3V location:
## Arduino Pro or Pro Mini (3.3V, 2 MHz) w/ ATmega168
(8MHz lready substituted by 2MHz)
Upload same sketch, keep CKDIV8 active. Result: blink ervery second. OK
Conclusion: running a Pro Mini 5V with a 16MHz crystal at 3.3V, and lower the frequency to an acceptable (see datasheet) value then it is perfectly executable, with 2 software changes: one in boards.txt and 1 fusebit.
Page 31/660 ofthe datasheet:
If the cryatal frequency exceeds the specification of the device (depends on VCC), the CKDIV8 Fuse can be
programmed in order to divide the internal frequency by 8. It must be ensured that the resulting divided clock
meets the frequency specification of the device.
This may seem like kicking in open doors, but I had my reservations about using a 16MHz crystal (and in fact oscillator) on 3.3V as Atmel says you should not run this processor at 16MHz at 3.3V.
Now this simple datasheet text, and this simple test confirms it is possible to run 5V Pro Mini
Also an incentive to do this is the fact that currently 3.3V Pro Mini's sell for at least twice the price as 5V versions on Aliexpress.