In simple terms, it actually goes like this. When you close the lid, the hardware sends a signal to the OS. The OS interprets it and acts according to the option you've given. When the lid is opened again, the hardware sends another signal (different from the one sent when the lid is closed). The OS on intercepting this signal then performs the corresponding action. So it's actually a combination of both hardware and software that makes this possible.
In your case, closing the lid probably doesn't send the signal to the OS. You need to send that via some other button like the power button. (Notice that the other options, sans hibernation, that you set for closing the lid are also not being reversed on opening the lid.)
Any software that can set such options has to intercept the signal of opening the lid from the OS. So if the hardware doesn't have the capability, the software cannot do it, either. Hope you got the point.