Another thing to consider is that when you create new animations for both sides, you run the risk of making the animation look drastically different, for example the character you've animated have very different archs and they will not hit the player from the same distance from both sides. Mirroring animations make sure that the character swings the same way and the same distance no matter which way it's facing. So mirroring sprites is not only productive, it also reduce player confusion and make your game more intuitive.
Good point. Since I'm not focusing in platform, what about top and down animations?
Since you can't really mirror a sprite up and down unless it's a truly top down game (and even then, you would just rotate the sprite instead), you have to draw the top sprite and the down sprite seperately, making sure that the arch for the attack is the same, it's a little bit more work but not too bad. The important thing is that the player can tell that it's the same attack regardless of which direction the sprite is facing.