Well, there is GitHub - WestfW/fusebytes: Arduino sketch for printing info about chip signature, fuses, bootloader version, etc
It might be a bit rusty.
[Edit] More details: one of the first things I did when I took over maintenance of the Optiboot bootloader was to add an actual version number to the binary, is a spot that is easily readable. And I started updating it. Unfortunately, this doesn't identify bootloaders from before that change. Also, the version number isn't readable by sketches, with the normal Arduino "protection bits." (I tried at one point to get the protection bits changed, but that idea was not met with much enthusiasm ("reduce protection? Inconceivable!"))
The version number IS reported during upload of a sketch, if you have the "Verbose upload" preference selected:
Programmer Type : Arduino Description : Arduino Hardware Version: 3 Firmware Version: 4.4 Vtarget : 0.3 V Varef : 0.3 V Oscillator : 28.800 kHz SCK period : 3.3 us
Pre-optiboot bootloaders will report Hardware Version 2 (I think), and typically Firmware version 1.16 (sorry, I'm not finding a board that I haven't upgraded to optiboot...) (There are versions of the old bootloader that fixed the WDT problems as well. IIRC, both Adafruit and Sparkfun were using a fixed bootloader in their "more official" Arduino-compatible boards, prior to Optiboot. Unfortunately few vendors of the Nano or Nano clones (or the "pro mini" clones) picked up the fixed version.) (and AFAICT, no one updated the version number, for fear of incompatibility with PC-side tools, or something.)
Early versions of optiboot (Post Uno, but pre IDE 1.0) will show Firmware 3.3. I think the WDT fix went in in 4.1
Current Arduino bootloader is firmware 4.4
Latest development Optiboot is 8.2 (that's not really as bad as it looks; most of the changes that have been made are not relevant to the common ATmega328 boards, and many are build environment improvements.)