This makes that GarrisonHolder sets the IsGarrisoned-flag on an entity with UnitAI, so that it cannot be forgotten when introducing new code or moving existing code.
It makes sense because the only way of garrisoning an entity is via the GarrisonHolder.
rP9498 Introduced the flag, but I have no clue as to why it did not use the GarrisonHolder for it did mention that in the related ticket.
See discussion in D1403. There the meaning of the UnitAI's isGarrisoned was discussed:
- To be in a "GARRISON" FSM state.
- To have a "GarrisonHolder" (i.e. actually be garrisoned, no matter what the state or order is).