This is one of the main issues of Construct 2, and I hope it will be solved with better support to IIDs and UIDs, as said here: http://www.scirra.com/forum/suggestion-show-i-uids-for-selected-objects_topic55109_post344056.html#344056
So, you'll ran in two type of problems, and all the answers are "bad" in my personal opinion.
Or you create the enemies and keep tracking them with UID or IID, so, you can manipulate their health as well, but when you destroy one of them, you'll modify the index and flush their UIDs or IIDs.
The second method is keep them invisible after their health goes 0. This will improve the number of objects on the canvas, but will not reset the UIDs and IIDs.
I personally did a workaround for it by this way:
When the player shot on an enemy and hit him, set the to drop the health of the nearest enemy of that projectile. It's working nice, but when two enemies are hit by the projectile, it only drop the health of the nearest.
So, I'll improve the code to check the overlapping enemies, so, if the enemy is overlapped, drop his health.
This is working because one thing Ashley said on his Manual here: http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2/page-6
So, if you create a new enemy, the engine will treat this enemy as a unique object (UID and IID), but you can know where it is and manipulate him by making a conditional meeting your necessity, so, when the bullet hit the monster, that specific monster, inside that conditional, will lose health or die. ^^
A long and terrible explanation, but I hope it's understandably!