1. Don't store an extra set of images if it is exactly the same as some other image but flipped. Horizontal and vertical flipping can be done in realtime. For example those arrow buttons.
That would involve a per-pixel examination of every image which is packed, resulting in horribly slow packing. If you want this kind of optimization, I think it needs to be at a user level.
2. Notice where some graphics are the same as other except for color tints - allow use of SetColor to tint the white graphic to make it blue/green, thus needing to store less gfx.
That would be very difficult to calculate, and would definitely involve even slower per-pixel calculations. You'd have to compare with every possible tint. So that's 16 million ( give or take ) checks per image and each one would have to compare every single pixel with every other image of the same size. That would take forever to pack.