The specification states that GL_ACTIVE_PROGRAM is a rename of GL_CURRENT_PROGRAM
However, it seems that according to the extension registry that they should be two different values - refering to two different pieces of state.
I can't find any such language in the current spec (4.3). Looks like this got fixed a while ago. ACTIVE_PROGRAM and CURRENT_PROGRAM are documented as doing different things in the 4.3 spec and are listed separately in the state tables. Resolving as fixed.