memory usage for 16-bit texture

If you create a 16-bit texture using:

        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_texWidth, m_texHeight,

            0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, outPixel16);

Is the GPU really using 2 bytes per pixel, or does it just convert everything to 32bit internally?

POWERVR GPUs natively support RGBA4444, so yes, it should be 2 bytes per pixel.