The old API had several types of textures for different meanings of the same single-channel data. You had GL_ALPHA for alpha only channels, GL_LUMINANCE grey scale with unit alpha channel, and GL_INTENSITY for grey scale and alpha. Since you couldn't program the pipeline with the same flexibility as before, you had to give meaning to the texture data to ensure that reading a single channel texture would populate the four color channels with the proper data. For example, a GL_LUMINANCE texture value of L would generate the RGBA color value (L, L, L, 1), but you had to use an different texture format if you instead wanted the RGBA color value (L, L, L, L) (note the difference; 1 or L for the alpha channel).
With today's flexible programmable pipeline, you have no longer the need to tell OpenGL your intended use of the texture data. You just expand the channels as you like with the swizzle operator. OpenGL no longer has to know about your intent with the texture, only your shader has to.
There is no reason any more to have three different formats for the same single-channel texture. Just do whatever you want with the single channel in your shader.
The chance of GL_RED being deprecated is zero, until the entire API fundamentally changes again as it did with 3.0 and the core profile. GL_RED is the way to specify a single channel texture, just like GL_RG, GL_RGB and GL_RGBA are the ways to specify a 2, 3 and 4 channel texture, respectively.