The main issue is that there is quite limited space in the gbuffer. Rendering that data out requires extra passes that there simply is little room for. So usually any time you want to do something like this it’s going to mean repurposing an otherwise unused pass.
Anisotropy and Material Ambient Occlusion are often the first buffers to be repurposed.
I could be mistaken, but off the top of my head AO is grayscale and Anisotropy is RG, so that’s a total of 3 channels of data that can be requisitioned fairly freely.
It would require modification to the base engine’s shaders to disable these outputs from doing their normal thing - because if you’re passing some arbitrary data through the anisotropic buffer for example, you don’t actually want it to use that data to apply expensive and undesired anisotropy to your materials.