Nothing to do with memory used or trying to save on memory. It's more about convenience and not having to rely on multiple stacked objects with different collision masks for checking different things. So if you have a player in an isometric 2D game I can see 3 if not 4 collision masks involved.
1) The base of the player mask, a small rectangle, would be used to check for collisions and make sure the player is still within the map,
2) a collision mask that containing the swiping passage of a sword attack that would be used for collision checking on attacks. This one would exclude the player sprite pixels
3) this one is the positive of the sword, a player body only mask for checking collision on receiving damage.
Shame there isn't a function like that. I have to stack a player, player_sword and player_masks objects on top of one another