Specular adjusts specular reflectance at F0 for dielectrics, but despite the mapping being linear (0-1) in the UI, it correlates to something like a 2% - 8% raw value being fed into the renderer, as values outside of this range don’t exist for dielectric surfaces found in the real world. If the UI lets you go outside of 0-1, you’ll be getting physically undefined behavior so I wouldn’t be surprised to see energy conservation go out the window.
Energy should be conserved if specular stays within a linear range.
FWIW, specular is really only used in the cases of materials like water, rubies, gemstones, prisms, and other related materials. 0.5 (correlating to ~4%) is very close to correct for the vast majority of dielectrics.
Metals do not use the specular attribute. Since their specular reflectance varies by wavelength, it is controlled through the base color node.
Another note is that default GGX does lose energy at increasing roughnesses if not properly compensated. Multi-scatter GGX fixes this issue. I haven’t tested Blender to see if they are compensating for high-roughness GGX energy loss or not, but try the multi-scatter GGX if you have problems.
Edit: Just tried and regular GGX loses energy like crazy. Full metal, white env, adjust roughness to see. Use multi-scatter. Even though multi-scatter seems to lose energy as well…