Most versions of equip will simply do nothing if the desired state has already been reached:
The one for familiar equipment is different. It instead gives an error:
> ash equip($item[seal-clubbing club])
Wielding seal-clubbing club...
Equipment changed.
Returned: true
> ash equip($item[seal-clubbing club])
Returned: true
> ash equip($slot[weapon], $item[none]);
Taking off seal-clubbing club...
Equipment changed.
Returned: true
> ash equip($slot[weapon], $item[none]);
Returned: true
The one for familiar equipment is different. It instead gives an error:
> ash equip($familiar[mosquito], $item[lead necklace])
Equipping the Mosquito with lead necklace...
Familiar equipped.
Returned: true
> ash equip($familiar[mosquito], $item[lead necklace])
Equipping the Mosquito with lead necklace...
Familiar request unsuccessful.
Returned: false
> ash equip($familiar[mosquito], $item[none])
Unequipping the Mosquito...
Familiar unequipped.
Returned: true
> ash equip($familiar[mosquito], $item[none])
Unequipping the Mosquito...
Familiar request unsuccessful.
Returned: false