@Kahless :
I was about to mention this thread ("Tool for making RGBA-4444 pngs?"). I'm afraid I made a mistake when I replied to markww. I said you have to save your pngs as 16-bit in order to use the 'RGBA-4444' pixel format, because otherwise, if you rely on the texture manager to "crush [them] down on the fly", you "should expect a completely different image". In fact, the image is not completely different, it's the same as the 16-bit one, but with lower quality. I think it's due to the repacking of pixel data which keeps only the most significant bits for each channel. I kind of overlooked that part and just assumed the repacking would keep the least significant bits which would have led to a completely different image.
Bottom line is, slipster is right, you don't have to save your pngs as 16-bit to use them as 16-bit.
Texture2DPixelFormat formatToRestore = [Texture2D defaultAlphaPixelFormat];
[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444];
Sprite *testSprite = [Sprite spriteWithFile:@"Iam32bit.png"];
[self addChild:testSprite];
testSprite.position = ccp(240, 160);
[Texture2D setDefaultAlphaPixelFormat:formatToRestore];