My understanding is that AddHenchman is the essential function.
HireHenchman is a wrapper for the OC, which includes rules you may not want (e.g. arbitrary firing of first henchman if limit is exceeded) and potentially redundant functions like SetPlayerHasHiredInCampaign, SetLastMaster, SetDidQuit etc which, while fairly harmless, interlock with OC subsystems that you may not be using.
It's a matter of cherry-picking the useful code, adding customisations.
For example, my own AddHenchman routine looks something like this:
SetAssociateListenPatterns();
SetLocalInt(oNPC,"NW_COM_MODE_COMBAT", ASSOCIATE_COMMAND_ATTACKNEAREST);
SetLocalInt(oNPC,"NW_COM_MODE_MOVEMENT",ASSOCIATE_COMMAND_FOLLOWMASTER);
AddHenchman(oPC);
ExecuteScript("bh_levelup", oNPC); // Level up to PC
ExecuteScript("x1_hen_identify", oNPC); // Identify items if I can
if (bNew) bhMakeKitDroppable(oNPC); // Make items droppable (unless plot or cursed) so that they can be pickpocketed by rogue NPCs
if (GetLevelByClass(CLASS_TYPE_ROGUE) > 0)
{
ExecuteScript("NW_CH_LOCK_ON", oNPC);
}
else
{
ExecuteScript("NW_CH_LOCK_OFF", oNPC); // By default, stop bashing
}