This is the compromise that basically all deferred renderers make. If you familiarize yourself with real time rendering pipelines you will understand why this is not a trivial task.
Transparent objects have to be drawn in a totally separate pass, usually after everything else. If they had all of the features that the opaque materials did it would literally double to frame time and buffer memory requirement and make it impossible to run real time.
There is only so much space on a gbuffer, so much VRAM on a GPU, so compromises are necessary.