When I'm working on 2d games, I prefer to work in pixel space. It's easy for me to think about things that way, as opposed to some image being 22.5% from the left of the screen.
With the iPad's native 1024x768 resolution, and ability to output to external monitors at potentially arbitrary sizes, we'll have to adapt the engine to properly handle native apps at multiple resolutions.
My suggestion is that we set a reference resolution to work in; so if you're targeting the iPad's native resolution but also want to run on the iphone, you'd do something like so:
[[CCDirector sharedDirector] setReferenceResolution:ccp(1024, 768)];
...
[mySprite setPosition:ccp(100,100)];
Now, if your running on the iPad the sprite is placed at 100,100. However, if your running on the iPhone, it would do the math and place the sprite at the correct position for a 320x480 resolution.
Sprite sheets would likely also need some concept of native resolution to do the proper scaling if we're sharing them between devices. However, I'd imagine most games would want to save the memory, and instead scale all the source images down and put them into a secondary target.