I think it's the existence of a unit with the same id (STR_) as the item.
From the point of view of OpenXcom engine, I think the difference between soldiers and "hwp" are the following - please correct me if I'm wrong :
* soldiers
- are hired (can't use the buy/manufacture systems)
- only one type of soldier can exist
- occupy living space
- get random gender, name, looks
- get random starting stats
- gain experience, ranks
- need recovery time after wounded
- can choose an armor
- can kneel
* non-soldier units
- can be 4-tiles, but it's not mandatory (ex: dog, scout drones)
- can be immune to psionic effects (and morale?), but it's optional
- immune to fatal wounds - in advanced ports, I think this is optional
- can be prevented from using inventory, but it's optional
- are automatically given a specific weapon
- can only be fielded if weapon can be fully loaded.