I have successfully drawn a multi-text polygon, but unfortunately only the first pixel of the overlay texture is used throughout the texture area.
Here are the textures (GL_TEXTURE0 and GL_TEXTURE1):


The result is the following:

Only the red pixel at the top is used. I tried with only 1x1 blue pixel at the top and I get the same result with blue overlay.
My code is:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisableClientState(GL_COLOR_ARRAY);
const CGPoint vertices[] = {
ccp(0,0),
ccp(100,0),
ccp(0,100),
ccp(100,100),
};
const CGPoint coordinates[] = {
ccp(0,1),
ccp(1,1),
ccp(0,0),
ccp(1,0),
};
glClientActiveTexture(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, icon.name);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
glEnable(GL_TEXTURE_2D);
glClientActiveTexture(GL_TEXTURE1);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, overlay.name);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
glEnable(GL_TEXTURE_2D);
GLubyte points = 4;
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, points);
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_COLOR_ARRAY);
This is an OpenGL problem, but the iOS project is available here for those interested: http://dl.dropbox.com/u/33811812/cocos2d/OpenGLTest.zip
EDIT:
From the Red Book:
glTexCoord *(), . , glTexCoord *() glMultiTexCoord * (GL_TEXTURE0,...)
, ? OpenGL ES 1.1 glBegin() ..