This is a case of Premature Optimization.
You don't even know what your problems may be yet - it could be memory usage, it could be the time spent searching the array, adding/removing elements, it could not be any issue at all before you run into fillrate limits that prevent you from drawing more enemies on screen before your algorithm even becomes the slightest bit inefficient.
You may even find that your current approach is slower than recreating sprites, so you change it. But then this new approach becomes a significant issue because it doesn't scale up as well. You can only find out through testing and measuring, but again: premature optimization.
Fix problems you actually have; don't chase "maybes".
As for NSMutableArray size isn't fixed like with C arrays. NSMutableArray will grow dynamically if you add more items to it, and shrink accordingly as you remove items.