As announced at Adobe MAX conference, Flash CS5 will have the ability to output iPhone binaries directly (read FlashMagazine Article about it).
I don't have much details on how it's done, but here's my guess based on what I've been reading : Adobe have built a SWF Bytecode-to-C converter (maybe using LLVM which was already used for Alchemy), then are using a cross compiler such as a modified version of GCC in order to link together this C code and a static library containing the Flash Player for iPhone.
This way there is no runtime interpretation of the SWF Bytecode, everything is "native".
First, I'm pretty sure that you will be able to use SWC in iPhone projects in CS5 (or else that would be a too much crippled feature). And since Haxe allow you to output reusable SWC, it means that you will be able to use Haxe together with this CS5 feature.
However, in that case (or if you are using AS3) you are still targeting the Flash Player. You will have additional API to handle touch screen, but you will mainly be limited by what the Flash Player gives you. In particular, that mean that you will not be able to access OpenGL ES API, etc.
This is the main difference with Haxe/C++ way of doing things.
Haxe/C++ allow you to natively target the iPhone (and all other devices that can be programmed with C++ BTW). And in order to ease the from-Flash transition, some API of the Flash Player have been ported to C++ in order to reproduce their behavior.
But with Haxe/C++ you are no longer limited by the Flash Player : you can directly access to all the API provided by the iPhone, and in terms of graphics capabilities you don't have to go through the Flash Player API, which is good when you want to abstract things, but bad if you want to get best performances or innovative visual effects.
So in the end it's nice to have the choice : either use CS5 feature to be able to directly run your unmodified apps on the iPhone, or if you really want to be able to "hack" the iPhone and use its native capabilities, use Haxe/C++ for that.