I’m too a little bit of surprise of not so many devs out there do perfect pixel collision, that might be some reasons.
By the way, I found this http://www.cocos2d-iphone.org/forum/topic/18522.
You may adopt his idea to solve this.
By render an intersection between both sprites into a separate buffer/texture (look at CCRenderTexture, http://www.cocos2d-x.org/embedded/cocos2d-x/de/d50/classcocos2d_1_1_c_c_render_texture.html), then after all count the pixels there. If it’s more than 1, then collision occurs.
But nonetheless, the approach the link mentions still use glReadPixels(). Although there’s no other ways to read individual pixel, the performance hit is limit as we check only those bounding intersection area.
After all, be careful with performance. We should do rough check first before actually go deep into finer check as of pixel collision.