The direct-use HM thing should be fairly simple to do, given that HMs run off of NPC scripts. So, for things like Cut, Rock Smash, and Strength, it's as simple as going into something like AdvanceMap and using your favourite NPC script editor to remove the parts of the script which you don't want.
For the HMs which have physical sprites like Cut, those sprites are considered NPCs by the game and have their own script that they run. For HMs like Surf and Flash, it might be a little more complex.
Surf is also done using a script, but this script is run via a tile and not an NPC. You can still edit or give it a new script, but you have to repoint it manually. I don't think Flash is able to be called via the overworld, so you'd have to go about that one in a different way.
Here's a list of all of the HM NPC scripts in FireRed and Emerald (you didn't specify which game you wanted).
Cut: 081BDF13 (FR) 082906BB (EM)
Rock Smash: 081BE00C (FR) 082907A6 (EM)
Strength: 081BE11D (FR) 082908BA (EM)
Surf: 081A6AC8 (FR) 08271EA0 (EM)
Waterfall: 081BE2C5 (FR) 08290A49 (EM)
Dive: 081BE38B (FR) 08290B0F (EM)
(Yes, FireRed has a Dive script, although it is unused by default).
It's not impossible to add features to existing binary hacks, it just might be slightly more difficult depending on what was changed. At least for the HM thing, though, it should be pretty easy.
I don't know much about the other question you had, unfortunately. However, hopefully, this helps.