[Sprint HTC One (M8)] mojomojo_man:
Uhh wow. That's quite a rant. I don't know where to begin but yes it is confusing and made more so misinformation and vague information that assumes a high defree of knowledge but raging at us about it is probably not productive. The devs and contributors like OMJ are not obligated to explain everything beginning with a glossary of terms. As it is they already spend hours and hours on those OP's so I'm not going to fault them. Newbie guides to definitions of terms, etc. are no doubt available out there on the great wide interwebs. I'm just going to ignore the WHY questions and the rants about how confusing it is as there's little I can do to fix that or even answer those questions. Even though it doesn't really belong in this thread, I'll try to commend on the information I can provide you with some confidence...

ROM

: Generally speaking this is the whole OS. (/system, /boot, /cache & dalvik). When dealing with custom ROMs it stops there typically but when dealing with manufacturer supplied ROM's like these RUU's it usually includes and flashes all the firmware and formats /data too and even the internal "SDCARD" storage. HTC distributes these RUU's to WIPE and RESET phones. If your typical end user hoses their phone and brings it to the Sprint store the tech will take it in the back and run the RUU on it and factory reset it and give it back to them. HTC may also walk you through doing this over the phone via other methods.

Firmware

(as used on these forums): Since you are an IT guy like me you know what a BIOS is and that devices like RAID cards, Server class NICs, HDD's etc., all have flashable firmware. This is essentially what the devs here are talking about. While some may refer to the entire OS as firmware that is not necessarily inaccurate if you consider firmware the code that is stored on what is normally a Read Only media. Normally, /system is read-only and rarely changed but by rooting and getting S-Off, etc. YOU have blurred that line, not Android. I can't speak to their frame of mind but I can see why they are within their rights to consider the OS/ROM as firmware. Now, given that most of us folks hanging around XDA have r/w to /system and can modify the OS at will they don't really consider it as firmware and even if they wanted to would still need some way to delineate the "real" firmware in the traditional sense (BIOS aka HBOOT, radios, other hardware).

So to elaborate further on what the people here are calling Firmware it's comprised of several individual components:

HBOOT

: (kinda like BIOS) i think only HTC calls it this and frankly I don't know if there's a Samsung or LG equivalent. This is what provides the bootloader and performs the initial bootstrap of the system and access to recovery, etc. A bad HBOOT is a one way ticket to brick town. If it's just incompatible but still functioning you can recover.

Radios

: Referred to in the OS as "baseband". These are updates to the microcode that runs the wireless, CDMA, GSM, LTE, etc. chip(s). Pretty much like flashing the firmware for a NIC on a server. I think modern phones are generally one chip for all those radios but it might be a few different ones...? These are going to be specific to your region and carrier also usually so flashing the wrong one can you leave you completely offline.

Recovery

: This is an image of a small "OS". You can think of it like a bootable ISO that provides tools for recovering/modifying the OS/ROM. Kinda like popping a Live CD into your PC the recovery can run even when the OS is trashed. Much to their credit on HTC devices (unlike Samsung and who knows else) the recovery image is on it's own partition. I know on Samsung its just a file called recovery.img sitting in /system or some place but not here. And this is a good thing because you can wipe out /system and still boot to recovery. Normally most rooted people flash TWRP or some custom recovery so they can do their own flashing and backups, etc. Custom recoveries are (IMHO) the greatest thing since sliced bread and half of the reason for rooting (nandroid backups are awesome). The stock recovery is extremely basic and only does what it wants but the OTA updates that the phone is prompting you to run won't run if you've got TWRP installed. Flashing a "full firmware" usually puts your recovery back to stock. This is trivial to flash through fastboot via USB connection to your PC so long as you can get into the bootloader. To avoid that annoyance OP has posted versions of Firmware which do NOT include this so you don't have to overwrite your custom recovery.

/boot

: If you know linux you know this is where the kernel lives. Maybe also the boot splash screens too? It's a separate partition also I think and is not normally mounted or accessible. Sometimes left out of flashable firmware zips mainly for those people who are running custom/modified kernels OR if you just want to flash your basebands and HBOOT but don't want to install the OS update yet then maybe you should probably keep your kernel at the version that came with your OS. Mismatched kernels and OS's are usually ok but can sometimes cause bootloops and other things.

As to what's the difference between 4.20.654.10 and 4.25.654.10 well the short answer is whatever HTC (and Sprint) wants to be different. Specifically, what is rolled into this update I have no idea. No doubt some OS bug fixes and enhancements and some tweaks to the firmware and other minor things this time around. They came up with that system version number to represent a release that they defined and in a non-rooted normal phone they expect that to mean that all the firmware, baseband, kernel and /system files and Sense are all the versions that are supposed to be in that package. Because we root and S-Off and mess with the devices around here that's not always the case but that's just us tweakers. But the next one could be as drastic a change as the jump from Android 4.x to 5.x was.... it's up to them.

As to all the different methods well that's just how it is with HTC phones and many of us are thankful when we've near bricked our phones and only been able to restore via one of the many methods.

For doing a full RUU restore though there is really only two options I think:

1.) Connect the phone via USB to the PC and run RUU .exe file which will automatically wipe and flash and reboot and factory default the phone to the new ROM version (with new firmwares, etc.)

2.) Naming the ZIP file to 0P6BIMG.zip method. This does the same thing as above but doesn't require the PC assuming you already have the ZIP file on an SD card.

I imagine this exists because this is how they do it in the factory. The phone no doubt comes off the assembly line with some kind of bootloader and some kind of firmware on the radios but little else and diff versions perhaps and they want to put the final load and make sure all versions are at the proper levels and be able to change all that at the last minute in production process not to mention all the different loads for different carriers and regions right? So they can late in the production process mount an SD card with this file on it and boot to the bootloader which looks for this file with that specific name each time it loads and then does it's thing. If it finds that file it opens it and does whatever the script inside tells it to. That could be reflashing the entire phone ROM and firmwares or just flashing the radios even. As to the naming convention of those files it's different amongst different models I think. I would assume its also a weird string like that to lower the odds of you ever having a legitimate file on the SD card with that name which cause the bootloader to have fits trying to load it.